Android SurfaceView动画(二)
效果图:
慢慢的绘制出来,从左往右一帧一帧的绘制而成
新建一个 class,SurfaceViewAnim.java:
public class SurfaceViewAnim extends SurfaceView implements SurfaceHolder.Callback,Runnable {private SurfaceHolder mHolder; // 声明SurfaceHolderprivate Canvas mCanvas;private boolean isDrawing; //控制绘图线程private Paint paint; // 画笔对象private Bitmap snail; // 实现动画的图片对象private int snail_X; // 动画元素的起始X坐标public SurfaceViewAnim(Context context) {super(context);snail = BitmapFactory.decodeResource(getResources(),R.drawable.ic_one);// 为了得到屏幕的宽度DisplayMetrics dm2 = getResources().getDisplayMetrics();int width = dm2.widthPixels;snail_X = width; // 起始 X 坐标赋值为当前屏幕宽度值,即屏幕最右边paint = new Paint();mHolder = this.getHolder(); // 获取SurfaceHolder 对象mHolder.addCallback(this); // 添加 Callback 接口}@Overridepublic void surfaceCreated(SurfaceHolder holder) {isDrawing = true;new Thread(this).start(); // 启动绘图的线程}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {isDrawing = false; // 终止绘图线程}public void run(){while (isDrawing){snail_X--; // 绘图元素属性修改,此处为修改其 X 坐标if (snail_X <= 0){ // 到达最左边后,不再移动snail_X = 0;}mydraw(); // 绘图try {Thread.sleep(30);} catch (InterruptedException e) {e.printStackTrace();}}}private void mydraw() {try {mCanvas = mHolder.lockCanvas(); // 锁定面板,开始绘图paint.setColor(Color.WHITE);mCanvas.drawRect(0,0,getWidth(),getHeight(),paint); // 绘制背景mCanvas.drawBitmap(snail,snail_X,100,paint); // 绘图}catch (Exception e){}finally {if ( mCanvas != null){mHolder.unlockCanvasAndPost(mCanvas); // 解锁花瓣,推送到界面}}}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {SurfaceViewAnim anim;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);anim = new SurfaceViewAnim(this);setContentView(anim); // 设置 anim 为显示视图}
}
activity_main.xml,不变
点击运行即可
Android SurfaceView动画(二)相关推荐
- android surfaceview动画,怎么让android的surfaceview中的动画更加平滑流畅
比如一个位移动画. 大概代码类似这样float startX,startY;//动画开始前的位置 float x,y;//图片当前坐标 float targetX,targetY;//目标位置 flo ...
- Android Animation动画详解(二): 组合动画特效
前言 上一篇博客Android Animation动画详解(一): 补间动画 我已经为大家介绍了Android补间动画的四种形式,相信读过该博客的兄弟们一起都了解了.如果你还不了解,那点链接过去研读一 ...
- android下雨动画效果,Android 自定义View(二) 下雨效果
Rain.gif Android 自定义View(二) 下雨效果 一 实现思路, 雨点用线段表示,通过控制线段的大小和宽度来表示不同的线段. 一个雨点下雨的过程可以表示为一条直线,一次雨点在下雨的过程 ...
- Android自定义动画专题二
android自定义动画专题二 在上篇文章中给大家介绍了android自定义动画的第一种表现形式:view的绘制:不过这只是一种单纯利用自定义控件绘制的方式去实现:这篇文章会给大家演示如何通过自定义控 ...
- Android 属性动画使用(二)
首先扯点别的:晚上稍微跑了一会步,然后逛了超市,晚饭喝的南瓜粥,吃了一碗面条,今天不是太饿,现在正一边吃着葡萄一边学习,也是没谁了. 比如说,我们想要实现从0过渡到100,使用ValueAnimato ...
- android换肤动画,Android换肤(二) — 插件式换肤
###前言 上节我们讲到了`Android-skin-support`库的应用内换肤,大家感兴趣的可以参看文章: [Android换肤(一) - 应用内换肤](http://www.demodashi ...
- 详解与重构hyman《Android SurfaceView实战 打造抽奖转盘》
详解与重构hyman<Android SurfaceView实战 打造抽奖转盘> 作者:邵励治 一.概述--关于SurfaceView您不得不知道的二三事 1.SurfaceView是干什 ...
- Android中动画的详细讲解
逐帧动画: 补间动画 结合动画 自定义动画 属性动画一 属性动画二 动画三 动画四 逐帧动画 语法格式 MainActivity代码 补间动画Tween Animation子类 interpolato ...
- XamarinAndroid组件教程设置自定义子元素动画(二)
XamarinAndroid组件教程设置自定义子元素动画(二) (9)打开MainActivity.cs文件,为RecylerView的子元素设置添加和删除时的透明动画效果.代码如下: --using ...
- Android 帧动画何时停止播放
为什么80%的码农都做不了架构师?>>> 关于android帧动画没有提供结束播放的接口回调表示不理解,也许是基于播放动画的时候,系统在干其他事情,无法确切地保证动画在tota ...
最新文章
- Indy接收邮件可能会出现的一个Bug
- Filter案例之登录验证
- 3493. 最大的和
- 微信公众号页面模版怎么添加文章推荐功能
- 在yuv域如何降低画面亮度_家庭影院投影机错误地调节了亮度和对比度会得到怎么样的画面?...
- python中定义元组的符号_python中得元组和字符串详解,有这么一篇文章就够了
- mysql视图子查询_MySQL:FROM子句限制中的带有子查询的视图
- html中css层叠样式表(行内样式,内嵌式,外部式)
- 数据分析中会常犯哪些错误,如何解决? 四
- springboot毕设项目网上商城系统8l44b(java+VUE+Mybatis+Maven+Mysql)
- 《Android之大话设计模式》设计原则 第一章:针对接口编程 不要针对实现编程
- 计算机网络——SMTP
- 新用户报到,以及门电路相关手游推荐
- Beam Search(集束搜索)算法
- MATLAB导入txt和excel文件技巧汇总
- Python NLP入门教程
- Python经典实验4-字典和集合的应用
- 新电脑重装系统好吗?电脑重装系统的好坏
- python编程lcd显示_PyQt5快速上手基础篇2-按钮控制LCD屏显示
- 二叉树的最近公共祖先 (BSF和普通)
热门文章
- 【BZOJ2839】集合计数【BZOJ3622】已经没有什么好害怕的了
- dos.ORM配置和使用
- [2017.01.04] 经典排序算法思想及其实现
- Think PHP url的四种访问方法。
- form表单自动回车提交
- C#问题——interface class
- 对自己深度学习方向的论文有idea,可是工程实践能力跟不上,实验搞不定怎么办?...
- 在茫茫决策树入门帖里,我强推这篇(附可视化图)
- 表妹即将去读研,我送了她11个建议
- Leetcode—5.n sum 问题python解答