摘要: mContainer.setPersistentDrawingCache(ViewGroup.PERSISTENT_ANIMATION_CACHE); /** * persistentDrawingCache设置了控件的绘制缓存策略,一共有4中策略:PERSISTENT_NO_CACHE 说明不在内存中保存绘图缓存;PERSISTENT_ANIMATION_CACHE 说明只保存动画绘图缓存;PERSISTENT_SCROLLING_CACHE 说明只保存滚动效果绘图缓存PERSISTENT_ALL_CACHES 说明所有的绘图缓存都应该保存在内存中。 阅读全文
posted @ 2012-12-04 14:47 bvin 阅读(283) 评论(0) 推荐(0) 编辑
摘要: public class Test { public static void main(String[] args){ //System.out.println(~-3);//取反(单目运算符)~ /* (0取反为-1)(-1取反为0) (1取反为-2)(-2取反为1) (2取反为-3)(-3取反为2) (3取反为-4)(-4取反为3) (4取反为-5)(-5取反为4) (5取反为-6)(-6取反为5)*/ //System.out.println(7&8);//按位与(双目)& /* (任何数&0都为0) (偶数&1为0,奇数&1为1,0除外)【可判断 阅读全文
posted @ 2012-11-27 17:14 bvin 阅读(184) 评论(0) 推荐(0) 编辑
摘要: public class Test { public static void main(String[] args){ int i = 1; String s = toFullBinaryString(i);//整形打印出二进制整形 System.out.println(s); System.out.println(Integer.parseInt(s));//将二进制转换成整形 } private static String toFullBinaryString(int x) {... 阅读全文
posted @ 2012-11-27 16:21 bvin 阅读(337) 评论(0) 推荐(0) 编辑
摘要: handler.post(r)其实这样并不会新起线程,只是执行的runnable里的run()方法,却没有执行start()方法,所以runnable走的还是UI线程。1.如果像这样,是可以操作ui,但是run还是走在主线程,见打印出来的Log线程名字是main,说明是主线程。这就是为什么可以直接在run方法里操作ui,因为它本质还是ui线程handler.post(new Runnable(){ public void run(){ Log.e("当前线程:",Thread.currrentThread.getName());//这里打印de结果会是main setTit 阅读全文
posted @ 2012-11-23 19:12 bvin 阅读(1536) 评论(0) 推荐(1) 编辑
摘要: 两个Handler,一个是主线程的mainHandler,一个是获取HandlerThread的looper的Handler.mainHandler在新线程发出消息,在主线程处理接受的消息。looperHandler拥有looper后即可post(Runnable),发起新线程,然后通过mainHandler在新线程里发送消息到主线程的handler。这里创建两个handler,一个是mainHandler维护主线程的looper,一个是looperHandler拥护HandlerThread的looper。1.mainHandler处理消息,复写handlerMessage()方法处理消息。 阅读全文
posted @ 2012-11-23 16:30 bvin 阅读(1588) 评论(0) 推荐(0) 编辑
摘要: AsyncTask构造(泛型参数)外部步骤:AsyncTask task = newAsyncTask<params,values,result>();task.exec(params);内部流程:1.void onPreExecute() ;//里头可放些提醒类的东西2.resultdoInBackground(params){publishProgress(values);};//执行任务,取得结果并返回3.void onProgressUpdate(values);//接收publishProgress()参数,可以更新进度4.voidonPostExecute(result 阅读全文
posted @ 2012-11-22 17:58 bvin 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 流程:1.点击开始,显示进度对话框,启动线程,循环发送消息(1-100)2.更新对话框中的进度,和标题栏的进度3.到达最大进度值时,关闭对话框,标题栏显示更新完成解析:1.在主线程处理handler的消息,更新Ui2.在其他线程里用主线程的handler不停发送消息3.线程启动,发送消息 1 package com.bvin.thread; 2 3 import android.app.Activity; 4 import android.app.ProgressDialog; 5 import android.os.Bundle; 6 import android.os.Handler; . 阅读全文
posted @ 2012-11-22 16:03 bvin 阅读(709) 评论(0) 推荐(0) 编辑
摘要: 主线程与其他线程双向通信handler+looper一个线程绑定一个Handler,通过handler发送消息到被绑定的线程里,就可以在该线程里处理收到的消息了。流程:1.程序启动,主线程就开始在跑。2.点击启动Other线程按钮,启动Other线程。(log打印Other线程已启动)3.点击发动消息到Ohter按钮,发送消息到Ohter线程。(Other线程里打印接收到的消息,因为Other线程不可以操作ui,所以只有通过log显示出来)4.Other线程收到消息后,又将消息发送到主线程,通过主线程的handler去处理ui。(收到Ohter线程,主线程的handler就可以通过一个Text 阅读全文
posted @ 2012-11-22 15:24 bvin 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 只有视图容器才可添加子视图,ListView lv = new ListView(this);//pop上的ListView lv.setLayoutParams(param);// List<String> area = new ArrayList<String>();//数据源 area.add("全部"); area.add("东湖区"); area.add("西湖区"); area.add("青山湖区"); area.add("青云谱... 阅读全文
posted @ 2012-10-31 17:22 bvin 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 先上图:点击张开,再点击收回。一开始,还以为有多复杂,原来就两下搞定。我们知道Button可以有好多state.pressed/clicked/checked等,实现点击效果,就用state_list _drawable(忘了叫什么,反正意识差不多)好,而箭头呢?这个就麻烦了,首先你想到肯定是drawableRight属性,但是要和selector配合,还是难以实现。所以只要把箭头切换放在代码里面就行了。main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:a 阅读全文
posted @ 2012-10-30 15:00 bvin 阅读(9698) 评论(0) 推荐(0) 编辑