Можно ли изменить цвет FadingEge из ListView?
Вопрос
Я хочу дать эффект, что ListView исчез от всего, что вокруг него. По умолчанию он устанавливается на любой цвет, который находится ваш список. Я могу отрегулировать ориентацию FadingEge и размером FadingEdge, но не цвет. Является ли это возможным?
Решение
Да, ты можешь !
setCacheColorHint(Color.WHITE);
Другие советы
Вам нужно будет создать новый класс, который расширяет ListView.
package com.mypackage;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;
public class ColorFadeListView extends ListView
{
// fade to green by default
private static int mFadeColor = 0xFF00FF00;
public ColorFadeListView(Context context, AttributeSet attrs)
{
this(context, attrs,0);
}
public ColorFadeListView(Context context, AttributeSet attrs, int defStyle)
{
super(context,attrs,defStyle);
setFadingEdgeLength(30);
setVerticalFadingEdgeEnabled(true);
}
@Override
public int getSolidColor()
{
return mFadeColor;
}
public void setFadeColor( int fadeColor )
{
mFadeColor = fadeColor;
}
public int getFadeColor()
{
return mFadeColor;
}
}
Вы можете использовать этот список идентично для нормального ListView
(Хотя вам придется правильно его отбрасывать, чтобы использовать методы AccessoR FadeColor). В вашем XML, вместо того, чтобы определять объект как <ListView android:properties.../>
определить его как <com.mypackage.ColorFadeListView android:properties.../>
Вы можете попробовать это (это взломать, я знаю):
int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(brandColor, PorterDuff.Mode.MULTIPLY);
Я воспользовался тем, что эффект свечения на самом деле является совместно используемым и примененным фильтром: http://evendanan.net/android/branding/2013/12/09/branding-eed-effect/