Android动画实现(一)
来源:互联网 发布:化合物谱图数据库查询 编辑:程序博客网 时间:2024/06/14 01:27
Android动画实现(一)
自定义View实现动画
原理:使用View的postDelayed方法实现延迟重绘操作。在重绘操作中每次绘制不同的图形就能实现动画。
代码如下:
public class CircleAnim extends View { private Paint mPaint; private static final int sColor = 0x33668843; private int mRadius; private int mMaxRadius; private int mY; public CircleAnim(Context context) { super(context); initView(); } public CircleAnim(Context context, @Nullable AttributeSet attrs) { super(context, attrs); initView(); } public CircleAnim(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(); } public void initView(){ Log.e("zxx", "initView"); mPaint = new Paint(); mPaint.setColor(sColor); WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); mMaxRadius = wm.getDefaultDisplay().getWidth(); mY = wm.getDefaultDisplay().getHeight(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Log.e("zxx","onDraw"); //绘制不同大小圆形 canvas.drawCircle(mMaxRadius, mY / 2, mRadius, mPaint); if (mRadius < mMaxRadius * 1.3){ mRadius = mRadius + 100; postDelayed(new Runnable() { @Override public void run() { //重绘 invalidate(); } }, 100); }else{ mRadius = 0; postDelayed(new Runnable() { @Override public void run() { invalidate(); },100); } }}
- 动画效果如下
阅读全文
0 0
- android 动画实现(一)Tween动画
- Android动画实现(一)
- Android动画学习(一)之动画概述和帧动画实现
- Android 动画(一)
- Android动画(一)
- Android动画(一)
- Android动画(一)
- Android动画详解之Android动画属性和实现方法(一)
- Android 动画(一)---布局动画
- Android动画--属性动画总结(一)
- android动画系列(一):动画基础
- Android动画机制-属性动画(一)
- Android动画(一)-视图动画
- android动画实现-Frame animation(一)
- Android刷新转圈动画实现(一)
- android之动画实现(一)(四种基本补间动画)
- Android动画入门(一)
- android Tween动画 (一)
- 选择排序
- 3——语音分析——物理架构
- c++ 中pair类模板的用法详解
- 关于配置FTP时候遇到的“ftp链接不上显示ECONNREFUSED
- Java分层架构
- Android动画实现(一)
- 并发与并行
- Java中的this与super
- java基础第一篇
- 树状数组知识入门
- spark mac intellij idea开发环境
- Django学习:今天测试MySQL连接的时候提示Unknown command: 'syncdb'
- 用指针来完成“you are from shanghai”逆序
- 无root权限安装Tensorflow 并解决version `GLIBCXX_3.4.19' not found 问题