質問

ListViewがその周りにあるものから消えてしまったという効果を与えたいと思います。デフォルトでは、ListViewの色に設定されています。色は色ではなく、フェードエッジの方向とフェードエッジのサイズを調整できます。出来ますか?

役に立ちましたか?

解決

はい、できます!

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 (ただし、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/brandingeded-effect/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top