over-scroll edge 및 over-scroll Glow의 색상을 변경하는 방법 또는 android release 5.0 lollipop의 흰색 색상 (기본 색상)을 변경하는 방법은 무엇입니까?overscroll edge 및 overscroll glow의 색상을 변경하는 방법
답변
overscroll 글로우 색상은 전체 앱에서 android:colorPrimary
으로 설정된 기본 색상 값을 상속합니다. 그러나 다른 값을 지정해야하는 경우 android:colorEdgeEffect
을 사용하면됩니다. LOLLIPOP
에서
<style name="MyAppTheme" parent="***">
<item name="android:colorEdgeEffect">@color/my_color</item>
</style>
이 속성은 API 21 이상에서만 사용할 수 있습니다. – fractalwrench
예 질문의 내용입니다. –
또한 'android : colorPrimary'는 ActionBar 또는 툴바의 색상을 설정한다는 점에 유의하십시오. 'android : colorEdgeEffect'가 더 구체적이고 ListViews, RecyclerViews에만 적용되는 반면 –
에지 광선은 colorPrimary
상속. 뷰를 생성 한 후 에지 글로우 색상은 리플렉션을 통해서만 변경할 수 있습니다. Palette
을 사용하여 색상을 동적으로로드 할 때 유용 할 수 있습니다.
편집 : TL; DR : 여기에서 전체 클래스를 다운로드 : https://github.com/consp1racy/android-commons/blob/master/commons/src/main/java/net/xpece/android/widget/XpEdgeEffect.java
난독 설정 : 당신이 지원 라이브러리에서 위젯에서이를 사용하려고하는 경우 당신은 필드 이름을 유지할 필요 . 그것을 할 수있는 가장 빠른 방법 인 (여전히 낭비 있지만) 다음
-keepclassmembers class * extends android.view.View {
<fields>;
}
-keepclassmembers class android.support.v4.widget.EdgeEffectCompat {
<fields>;
}
다음 코드와 유틸리티 클래스를 만듭니다
private static final Class<?> CLASS_SCROLL_VIEW = ScrollView.class;
private static final Field SCROLL_VIEW_FIELD_EDGE_GLOW_TOP;
private static final Field SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM;
private static final Class<?> CLASS_LIST_VIEW = AbsListView.class;
private static final Field LIST_VIEW_FIELD_EDGE_GLOW_TOP;
private static final Field LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM;
static {
Field edgeGlowTop = null, edgeGlowBottom = null;
for (Field f : CLASS_SCROLL_VIEW.getDeclaredFields()) {
switch (f.getName()) {
case "mEdgeGlowTop":
f.setAccessible(true);
edgeGlowTop = f;
break;
case "mEdgeGlowBottom":
f.setAccessible(true);
edgeGlowBottom = f;
break;
}
}
SCROLL_VIEW_FIELD_EDGE_GLOW_TOP = edgeGlowTop;
SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM = edgeGlowBottom;
for (Field f : CLASS_LIST_VIEW.getDeclaredFields()) {
switch (f.getName()) {
case "mEdgeGlowTop":
f.setAccessible(true);
edgeGlowTop = f;
break;
case "mEdgeGlowBottom":
f.setAccessible(true);
edgeGlowBottom = f;
break;
}
}
LIST_VIEW_FIELD_EDGE_GLOW_TOP = edgeGlowTop;
LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM = edgeGlowBottom;
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void setEdgeGlowColor(AbsListView listView, int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
EdgeEffect ee;
ee = (EdgeEffect) LIST_VIEW_FIELD_EDGE_GLOW_TOP.get(listView);
ee.setColor(color);
ee = (EdgeEffect) LIST_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(listView);
ee.setColor(color);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public static void setEdgeGlowColor(ScrollView scrollView, int color) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
EdgeEffect ee;
ee = (EdgeEffect) SCROLL_VIEW_FIELD_EDGE_GLOW_TOP.get(scrollView);
ee.setColor(color);
ee = (EdgeEffect) SCROLL_VIEW_FIELD_EDGE_GLOW_BOTTOM.get(scrollView);
ee.setColor(color);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Nice! 프로그래밍 방식으로 광선 색상을 변경하는 방법을 찾고 있었고 모든 대답은 xml에 스타일을 설정하는 것과 관련이있었습니다. 당신은 문제없이 나를 위해 일했고 이제는 statusbarcolor 및 툴바에 대한 컨텍스트에 따라 색상을 dinamycally 변경할 수 있습니다. 감사! – MrBrightside
감사합니다. 그것은 잘 작동합니다. 그러나'RecyclerView'는 어떨까요? – sajad
@sajad 다음은 대부분의 스크롤링 컨테이너를 처리하는 데 사용하는 클래스입니다. http://pastebin.com/TAujMUu9 유일하게 누락 된 것은 'HorizontalScrollView'입니다. –
- 1. 활동에 OverScroll 애니메이션
- 2. "Overscroll"테이블 뷰
- 3. 안드로이드 Overscroll 비어있는 Listview
- 4. Android ScrollView overscroll 표시기 문제
- 5. overscroll listview bottom not working
- 6. Overscroll ListView가 잘못된 위치에 걸렸습니다.
- 7. android listview에서 overscroll 및 바운스를 비활성화하려면 어떻게합니까?
- 8. scroller overscroll 및 시간 선택 도구와 같은 기본 Tizen 웹 UI 모양을 변경하는 방법은 무엇입니까?
- 9. Flex Spark Scroller Overscroll Behavior를 변경할 수 있습니까?
- 10. 삼성 갤럭시 탭 2.3.3에서 목록보기 overscroll 사용 안드로이드
- 11. Sencha Touch에서 캐로 셀 overscroll/overdrag 사용 안 함
- 12. 버튼의 색상을 변경하는 방법
- 13. ttk.Separator 색상을 변경하는 방법
- 14. progressbar 색상을 변경하는 방법
- 15. JLabel 색상을 변경하는 방법
- 16. JLabel의 색상을 변경하는 방법
- 17. CCTexture2D 색상을 변경하는 방법
- 18. 텍스트 색상 및 채움 색상을 변경하는 방법
- 19. 합성 이미지의 색상을 변경하는 방법
- 20. JTable에서 행의 색상을 변경하는 방법
- 21. 선택하여 이미지 색상을 변경하는 방법
- 22. 테이블의 행 색상을 변경하는 방법
- 23. UINavigation의 색상을 변경하는 방법 leftBarButtonItem
- 24. quantmod의 addMACD에서 색상을 변경하는 방법
- 25. VIM 밑줄 색상을 변경하는 방법
- 26. DataGrid보기에서 행 색상을 변경하는 방법
- 27. ggplot2에서 산점도의 색상을 변경하는 방법
- 28. QxtLabel의 텍스트 색상을 변경하는 방법
- 29. 속성 창 색상을 변경하는 방법
- 30. Led Matrix에서 색상을 변경하는 방법
[안드로이드 롤리팝있는 ScrollView 가장자리 효과 색상] (HTTP의 가능한 중복 : //stackoverflow.com/questions/27104521/android-lollipop-scrollview-edge-effect-color) – alanv