2012年4月14日

android手势操作滑动效果触摸屏事件处理

摘要: 我们先来明确一些概念,首先,Android的事件处理机制是基于Listener(监听器)来实现的,比我们今天所说的触摸屏相关的事件,就是通 过onTouchListener。其次,所有View的子类都可以通过setOnTouchListener()、 setOnKeyListener()等方法来添加对某一类事件的监听器(注册监听)。第三,Listener一般会以Interface(接口)的方式来提供,其中 包含一个或多个abstract(抽象)方法,我们需要实现这些方法来完成onTouch()、onKey()等等的操作。这样,当我们给某个view设 置了事件Listener,并实现了其中的抽象 阅读全文

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

Android LayoutInflater详解

摘要: 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 LayoutInflater 是一个抽象类,在文档中如下声明:public abstract class LayoutInflater extends Object 获得 LayoutInflater 实例的三种方式LayoutInflater inflater = getLayo 阅读全文

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

ViewFlipper的使用

摘要: 屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面;一个个性化设置页面。通过查看OPhone API文档可以发现,有个android.widget.ViewAnimator类继承至FrameLayout,ViewAnimator类的作用是为FrameLayout里面的View切换提供动画效果。该类有如下几个和动画相关的函数:l setInAnimation:设置View进入屏幕时候使用的动画,该函数有两个版本,一个接受单个参数,类型为android.view.animation.Animation;一个接受两个参 阅读全文

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

android ListView详解

摘要: 在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。抽空把对ListView的使用做了整理,并写了个小例子,如下图。列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器 用来把数据映射到ListView上的中介。3.数据 具体的将被映射的字符串,图片,或者基本组件。根据列表的适配器类型,列表分为三种,ArrayAdapter,SimpleAdapter和SimpleCursorAdapter其中以ArrayAdapter最为简单,只能展示一行字。SimpleAdapter有最好的扩充性,可以自定义出各 阅读全文

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

详解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 明明的天天 阅读(597) 评论(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 明明的天天 阅读(7615) 评论(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 明明的天天 阅读(193) 评论(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 明明的天天 阅读(784) 评论(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 明明的天天 阅读(1169) 评论(0) 推荐(0)

Android--事件触发机制

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

posted @ 2012-04-14 17:42 明明的天天 阅读(666) 评论(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 明明的天天 阅读(344) 评论(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 明明的天天 阅读(824) 评论(0) 推荐(0)

android Adapter使用详解

摘要: 将此句说100遍, 你就会用了: 适配器的作用就是将数据绑定到条目界面的每一个显示控件上.---------------------------------屎一样的分割线-------------------------------------1.自定义Adapter的时候的getview()方法遇到了类型转换异常. @Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView = new ImageView(mContext);imageView.set. 阅读全文

posted @ 2012-04-14 15:38 明明的天天 阅读(3448) 评论(1) 推荐(0)

Android之图片处理(图片合成、图片圆角、图片翻转、图片缩放)

摘要: 图片合成 /** * 图片合成 * @param bitmap * @return */private Bitmap createBitmap( Bitmap src, Bitmap watermark ) { if( src == null ) { return null; } int w = src.getWidth(); int h = src.getHeight(); int ww = watermark.getWidth(); int wh = watermark.getHeight(); //create the new blank bitmap Bitmap newb = Bit 阅读全文

posted @ 2012-04-14 15:27 明明的天天 阅读(4784) 评论(0) 推荐(0)

导航