我意识到,对于Google Play市场,它们在左侧有“模糊”效果(请参阅左侧的“付费”和右侧的“趋势”,如附件中所示)
我想知道,使用ViewPagerIndicator是否可以达到这样的效果?从我看到的演示中,我们可以自定义各种指标(从线到三角形)。但我还没有看到一个例子,它会在左侧产生“模糊”效果。
答案 0 :(得分: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);
}
}