Google의 방법을 사용하여 앱에 전송 버튼을 추가하고 있지만 흰색 흰색 막대가 보이지 않는 흰색 아이콘이 기본값입니다. 전송 아이콘의 색상을 검정색으로 변경하려면 어떻게해야합니까?Chromecast 전송 아이콘 색상 변경
답변
스타일이 어둡거나 밝은 경우에만 스타일이 올바르게 정의되어 있어야합니다 (즉, 어두운 대 밝은 측면에서 올바른 테마를 확장하는 경우). 일반적인 스타일링의 경우 post을 확인해도 문제가 해결되지 않으면 다시 방문하여 알려주십시오.
이 문제가 직접 발생하여 android:theme
및 app:popuptheme
값을 @style/ThemeOverlay.AppCompat.Dark.ActionBar
으로 변경하여 해결했습니다. 아래
참조 예제 코드 :
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#4dffffff"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
나는 MediaRouteButton을 확장했다. 아래 코드를 참조하십시오. 그럼 난 그냥 applyTint를 (호출 할 수 있습니다) 그리고 그것은 RemoteIndicatorDrawable
public class ColorableMediaRouteButton extends MediaRouteButton {
protected Drawable mRemoteIndicatorDrawable;
public ColorableMediaRouteButton(Context context) {
super(context);
}
public ColorableMediaRouteButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ColorableMediaRouteButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setRemoteIndicatorDrawable(Drawable d) {
mRemoteIndicatorDrawable = d;
super.setRemoteIndicatorDrawable(d);
}
public void applyTint(int color) {
Drawable wrapDrawable = DrawableCompat.wrap(mRemoteIndicatorDrawable);
DrawableCompat.setTint(wrapDrawable, color);
}
}
의 모든 국가 난 그냥 그렇게 MediaRouteActionProvider을 확장 한 색상을 적용
이public class ThemeableMediaRouteActionProvider extends MediaRouteActionProvider {
public ThemeableMediaRouteActionProvider(Context context) {
super(context);
}
@Override
public MediaRouteButton onCreateMediaRouteButton() {
MediaRouteButton button = super.onCreateMediaRouteButton();
colorWorkaroundForCastIcon(button);
return button;
}
@Nullable
@Override
public MediaRouteButton getMediaRouteButton() {
MediaRouteButton button = super.getMediaRouteButton();
colorWorkaroundForCastIcon(button);
return button;
}
private void colorWorkaroundForCastIcon(MediaRouteButton button) {
if (button == null) return;
Context castContext = new ContextThemeWrapper(getContext(), android.support.v7.mediarouter.R.style.Theme_MediaRouter);
TypedArray a = castContext.obtainStyledAttributes(null,
android.support.v7.mediarouter.R.styleable.MediaRouteButton, android.support.v7.mediarouter.R.attr.mediaRouteButtonStyle, 0);
Drawable drawable = a.getDrawable(
android.support.v7.mediarouter.R.styleable.MediaRouteButton_externalRouteEnabledDrawable);
a.recycle();
DrawableCompat.setTint(drawable, getContext().getResources().getColor(R.color.primary));
drawable.setState(button.getDrawableState());
button.setRemoteIndicatorDrawable(drawable);
}
R.color.primary은 무슨 색 나는 원했다.
는다음 그냥 같은 그에게 MediaRouteActionProvider에서 메뉴에 actionProviderClass을 대체 :
이<item
android:id="@+id/media_route_menu_item"
android:title="@string/media_route_menu_title"
bwq:actionProviderClass="tv.test.playback.chromecast.ThemeableMediaRouteActionProvider"
bwq:showAsAction="always">
</item>
이 공식 해결책을 시도했지만 ([https://developers.google.com/cast/docs/android_sender_advanced#customize_cast_button](https://developers.google.com/cast/docs/android_sender_advanced#customize_cast_button)) 갑자기 중지되었습니다. 일. 그래서, 당신의 영리한 솔루션을 발견하고 나는 임시 수정으로 정말 고마워요 :) –
물론 간단한 대답은 여기 :
https://developers.google.com/cast/docs/android_sender_advanced#customize_cast_button
그래서 단지에서 mediaRouteTheme복사 너의 ap에 링크 된 p 테마와 다음 두 스타일을 styles.xml에 추가합니다.
- 1. 지도 아이콘 색상 변경
- 2. 아이콘 색상 변경 방법
- 3. Google지도 아이콘 색상 변경
- 4. Iconmoon 아이콘의 아이콘 색상 변경
- 5. 포커스가있는 EditText의 아이콘 색상 변경
- 6. 시스템 트레이 아이콘 색상 변경
- 7. 조건에 따라 아이콘 색상 변경
- 8. PC에서 Chromecast 이미지 전송
- 9. 누락 된 전송 아이콘
- 10. HTTP를 통한 Chromecast 전송 컨트롤
- 11. Chromecast SDK 전체 화면 전송
- 12. 글꼴 색상 변경 - 멋진 별 아이콘
- 13. 호버 위에있는 글꼴 아이콘 색상 변경
- 14. 변경 부트 스트랩 색상 글리프 아이콘
- 15. iOS 변경 탭 표시 줄 아이콘 색상
- 16. 링크를 가리키면 단 일 아이콘 색상 변경
- 17. 개별 탐색 서랍 아이콘의 아이콘 색상 변경
- 18. 멋진 wm을 통해 아이콘 색상 변경
- 19. 버튼 색상 변경시 아이콘 색상
- 20. imagemagick으로 이미지 색상 변경
- 21. GE API 아이콘 색상
- 22. 탐색 창 아이콘 색상
- 23. 색상 변경 색상 옵션
- 24. 변경 아이콘
- 25. 아이콘 변경
- 26. 변경 아이콘
- 27. 토글 부트 스트랩을 사용하여 마우스 오버시 아이콘 막대 색상 변경
- 28. Android 드로어 블 리소스 : 동적으로 아이콘 색상/'배경'을 변경 하시겠습니까?
- 29. CSS (글꼴 굉장) - 자바없이 다른 버튼 상태에서 아이콘 색상 변경
- 30. 글꼴로 HTML/CSS 아이콘 사용 - 호버 변경 색상
고마워요! 테마를 Theme.AppCompat.Light로 변경하여 문제를 해결했습니다. 그러나 이로 인해 내 앱의 기본 텍스트 색상이 검은 색으로 변경되었습니다. 기본 텍스트 색을 흰색으로 다시 설정하려면 어떻게 재정의 할 수 있습니까? – opticon
충돌하는 스타일이있는 것 같습니다. Theme.AppCompat.Light는 밝은 테마를 사용한다는 것을 의미합니다. 따라서 색상의 텍스트가 밝은 배경에서 검정색으로 변합니다. 배경 테마가 어두울 경우 해당 테마를 사용하면 안됩니다. 보유하고있는 요구 사항으로 인해 테마를 고칠 수 없다면 해당 색상의 PNG를 제공하거나 응용 프로그램에 xml을 넣는 대신 포인터를 dar로 전환하는 것과 같은 방식으로 다른 게시물을 사용해야합니다 빛 대. –