2012年4月14日

详解Android动画之Frame Animation

摘要: 在开始实例讲解之前,先引用官方文档中的一段话:Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。Frame动画可以被定义在XML文件中,也可以完全编码实现。如果被定义在XML文件中,我们可以放置在/res下的anim或drawable目录中(/res/[anim | drawable]/filename.xml),文件名可以作为资源ID在代码中引用;如果由完全由编码实现,我们需要使用到 AnimationDrawable对象。如果是将动画定义在XML文件中的话,语法如下:[html] view plaincopy<?xml version=&qu 阅读全文

posted @ 2012-04-14 18:01 明明的天天 阅读(438) 评论(0) 推荐(0)

Android onTouchEvent, onClick及onLongClick的调用机制

摘要: 针对屏幕上的一个View控件,Android如何区分应当触发onTouchEvent,还是onClick,亦或是onLongClick事件?在Android中,一次用户操作可以被不同的View按次序分别处理,并将完全响应了用户一次UI操作称之为消费了该事件(consume),那么Android是按什么次序将事件传递的呢?又在什么情况下判定为消费了该事件? 搞清楚这些问题对于编写出能正确响应UI操作的代码是很重要的,尤其当屏幕上的不同View需要针对此次UI操作做出各种不同响应的时候更是如此,一个典型例子就是用户在桌面上放置了一个Widget,那么当用户针对widget做各种操作时,桌面本身有的 阅读全文

posted @ 2012-04-14 17:55 明明的天天 阅读(598) 评论(0) 推荐(0)

Eclipse快捷键大全

摘要: CTRL + F11——你不想每次费力的去点击运行按钮吗,那么试试这个Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行 阅读全文

posted @ 2012-04-14 17:53 明明的天天 阅读(236) 评论(0) 推荐(0)

详解Android动画之Interpolator插入器

摘要: Interpolator英文意思是: 篡改者; 分类机; 校对机 SDK对Interpolator的描述是:An interpolator defines the rate of change of an animation. This allows the basic animation effects (alpha, scale, translate, rotate) to be accelerated, decelerated, repeated, etc。简而言之Interpolator就是一个“变化率”,一个基本动画的“变化率”。 比如:从A到B的一个平移动画,移动,当然后速度的快慢 阅读全文

posted @ 2012-04-14 17:53 明明的天天 阅读(7616) 评论(1) 推荐(0)

android有错.怎么办

摘要: 1.导入工程有错. 可能是你导入的版本SDK与eclipse里的版本不匹配. I.你可以改一下properties里的版本号. 再右键android tools --->fix project properties试试. (最后最好刷新一下). II. 这个方法靠谱. ①。新建一个自己的工程。并打开工程文件夹。 ②。打开有错工程文件夹。 ③。将新建工程文件夹里的三个文件(androidManifest.xml, src,res)复制到有错工程文件夹里。 ④。刷新。2.编辑编辑就出现莫名其妙的错误。 project --->clean一下。 作用。 删除以前的.class文件并重新生 阅读全文

posted @ 2012-04-14 17:50 明明的天天 阅读(195) 评论(0) 推荐(0)

android 2D绘图总结1

摘要: 1.整体概括: 用"button的绘制"做为实例.public class MyButton extends Button {--->继承Button. 一般我们都继承View,没有样式 public MyButton(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) {--->activity加载的时候会自动调用该方法 super.onDraw(canvas); Paint paint = new Paint();--->画笔:具有颜色和 阅读全文

posted @ 2012-04-14 17:49 明明的天天 阅读(786) 评论(0) 推荐(0)

eclipse删除空行

摘要: 1.打开源码编辑器 2.使用快捷键Ctrl+f 3.在Find输入框中输入:^\s*\n 3.Replace With输入框的值为空 4.在【Options】选中的"Regular expressions" 5.点击【Replace All】按钮。 6.OK! 阅读全文

posted @ 2012-04-14 17:46 明明的天天 阅读(1174) 评论(0) 推荐(0)

Android--事件触发机制

摘要: 我总结: 这里的返回值有一个"消费(consume)"的概念. 如果放事件(down, move,up)想像为商品就很好理解了. true代表我消费了.(这个商品我要了,你就不能要了,所以就不向后传递). false代表我没消费(这个商品我不要, 我向后传递给你,你爱要不要).MotionEvent事件在onInterceptTouchEvent()、onTouchEvent()中的传递顺序 onInterceptTouchEvent() 用于处理事件并改变事件的传递方向。处理事件这个不用说了,你在函数内部编写代码处理就可以了。而决定传递方向的是返回值,返回为false时事 阅读全文

posted @ 2012-04-14 17:42 明明的天天 阅读(668) 评论(0) 推荐(0)

抗锯齿与postInvalidate

摘要: 1. 分线程更新主线程UI的时候 : 用handler.handMessage(...){ invalidate()}也可以直接在onDraw()的分线程的方法里写postInvalidate().2.android的绘图的抗锯齿 a.画笔有方法. paint.setAntiAlias(true); b.但是画图片的时候用paint和不用paint一样.那么画布也有这个功能canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG)); 阅读全文

posted @ 2012-04-14 17:36 明明的天天 阅读(345) 评论(0) 推荐(0)

android surfaceView与view使用小结

摘要: 两种方法都是实现画一个慢慢变大的圆, 自定义的view要sleep一下才能看到效果 . surfaceView不用. 可能与其两级缓存有关._____________________________________最美分割线_________________________________________使用它主要就是 SurfaceHolder sh = this.getHolder();--->1.得到SurfaceHolder Canvas canvas = sh.lockCanvas();---->2. 锁定画布 Paint paint = new Paint(); pai 阅读全文

posted @ 2012-04-14 17:33 明明的天天 阅读(825) 评论(0) 推荐(0)

导航