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 に答える