(一)NotBoringActionBar之自定义组件ParallaxImageView
2015-04-04 11:42
351 查看
自定义组件ParallaxImageView
效果图如下:关键API:canvas.translate(float dx, float dy),想要慢慢的移动图片,其实就是移动画布的一个过程,因为图片就是画在画布(Canvas)上面的。
Android View的坐标系:
(0,0)-------------------->(x最大,0) | | | | | | | | | | (y最大,0)
ParallaxImageView类代码:
public class ParallaxImageView extends ImageView { private int mCurrentTranslation; public ParallaxImageView(Context context) { super(context); } public ParallaxImageView(Context context, AttributeSet attrs) { super(context, attrs); } public ParallaxImageView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void setCurrentTranslation(int translation){ this.mCurrentTranslation = translation; invalidate(); } @Override public void onDraw(Canvas canvas){ canvas.save(); canvas.translate(0, -mCurrentTranslation / 2); super.onDraw(canvas); canvas.restore(); } }
最后我们在MainActivity中使用Handler不断的post这个设置translation值的任务就行了:
private Handler mHandler = new Handler(); private int translation = 0; private final Runnable mTranslateRunnable = new Runnable(){ @Override public void run() { mImageView.setCurrentTranslation((translation++) % 100); mHandler.postDelayed(this, 100); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImageView = (ParallaxImageView) findViewById(R.id.parallaxImageView1); mHandler.postDelayed(mTranslateRunnable, 300); }
相关文章推荐
- 自定义ActionBar盘点---------NotBoringActionBar
- Making Your ActionBar Not Boring
- 对android中动画的简单理解及对NotBoringActionBar效果的简单分析
- 自定义图片缩放组件—ImageZoomView
- 自定义一个圆形ImageView组件
- Making Your ActionBar Not Boring
- Making Your ActionBar Not Boring
- 圆形头像以及一些常见需求形状自定义ImageView组件
- Making Your ActionBar Not Boring
- 自定义图片缩放组件—ImageZoomView
- Android开源项目——自定义圆形图片组件CircularImageView
- 圆形头像以及一些常见需求形状自定义ImageView组件
- 几行实现圆形头像,以及一些常见需求形状自定义ImageView组件
- 分享一个超好用的圆形imageview自定义组件
- 自定义ActionBar View
- NotBoringActionBar项目的思路解析
- android actionbar自定义View并添加点击事件
- 对viewpager与自定义组件bottombar结合的深入理解
- Making Your ActionBar Not Boring
- Making Your ActionBar Not Boring