1

我意识到,对于 Google Play 市场,它们对左右有“模糊”效果(见左边的“付费”,右边的“趋势”,如附件)

我想知道,是否可以使用ViewPagerIndicator来实现这样的效果?从我看到的演示中,我们可以自定义各种指标(从线到三角形)。但我还没有看到一个例子,它会在左侧产生“模糊”效果。

在此处输入图像描述

4

1 回答 1

4

我想知道,是否可以使用 ViewPagerIndicator 实现这样的效果?

您可以扩展TitlePagerIndicator类并简单地自己绘制褪色边缘:

public class TitlePageIndicatorFade extends TitlePageIndicator {

    private GradientDrawable mDrawableLeft, mDrawableRight;
    private static final int FADE_SIZE = 30;

    public TitlePageIndicatorFade(Context context, AttributeSet attrs,
            int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    public TitlePageIndicatorFade(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public TitlePageIndicatorFade(Context context) {
        super(context);
        init();
    }

    private void init() {
        mDrawableLeft = new GradientDrawable(
                GradientDrawable.Orientation.LEFT_RIGHT, new int[] {
                        Color.parseColor("#F9F9F9"),
                        Color.parseColor("#00000000") });
        mDrawableRight = new GradientDrawable(
                GradientDrawable.Orientation.RIGHT_LEFT, new int[] {
                        Color.parseColor("#F9F9F9"),
                        Color.parseColor("#00000000") });
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        mDrawableLeft.setBounds(0, 0, FADE_SIZE, getHeight());
        mDrawableRight.setBounds(getWidth()- FADE_SIZE, 0, getWidth(),
                getHeight());
        mDrawableLeft.draw(canvas);
        mDrawableRight.draw(canvas);
    }

}
于 2012-08-09T08:39:55.100 回答