ListViewが周囲からフェードアウトしたような効果を出したい。デフォルトでは、ListViewの色に設定されています。FadingEdgeの向きとFadingEdgeのサイズは調整できますが、色は調整できません。出来ますか?
6976 次
3 に答える
14
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
(ただし、fadeColorアクセサーメソッドを使用するには適切にキャストする必要があります)。<ListView android:properties.../>
XMLで、オブジェクトを次のように定義する代わりに<com.mypackage.ColorFadeListView android:properties.../>
于 2011-05-04T02:32:15.827 に答える
5
はい、できます!
setCacheColorHint(Color.WHITE);
于 2010-10-29T11:59:26.013 に答える
0
あなたはこれを試すことができます(それはハックです、私は知っています):
int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(brandColor, PorterDuff.Mode.MULTIPLY);
グロー効果が実際には共有のDrawableであるという事実を利用し、それにフィルターを適用しました:http: //evendanan.net/android/branding/2013/12/09/branding-edge-effect/
于 2013-12-09T19:28:29.880 に答える