Можно ли изменить цвет FadingEdge в Listview? - PullRequest
4 голосов
/ 29 октября 2010

Я хочу дать эффект того, что ListView исчез из всего, что вокруг него. По умолчанию он установлен на любой цвет вашего ListView. Я могу настроить ориентацию FadingEdge и размер FadingEdge, но не цвет. Возможно ли это?

Ответы [ 3 ]

14 голосов
/ 04 мая 2011

Вам нужно будет создать новый класс, который расширяет 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.../>

5 голосов
/ 29 октября 2010

Да, вы можете!

setCacheColorHint(Color.WHITE);
0 голосов
/ 09 декабря 2013

Вы можете попробовать это (это хак, я знаю):

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/

...