2016年3月26日

android学习11——Handler,Looper,MessageQueue工作原理

摘要: Message是Handler接收和处理的消息对象. 每个线程只能拥有一个Looper.它的loop方法读取MessageQueue中的消息,读到消息之后就把消息交给发送该消息的Handler进行处理.MessageQueue是消息队列,它采用先进先出的方式来管理Message.程序创建Looper 阅读全文

posted @ 2016-03-26 16:09 荷楠仁 阅读(344) 评论(0) 推荐(0)

对await(),notify()的理解

摘要: await(),notify()是java Object类的方法.在两个线程同时访问一个对象的时候可以利用这2个方法实现线程的通信.看下面的例子. public class Account { private String accountNo; private double balance; pri 阅读全文

posted @ 2016-03-26 10:30 荷楠仁 阅读(1031) 评论(0) 推荐(0)

对synchronized关键字的理解

摘要: 先看两个线程同时访问一个对象的例子. 类Account有2个成员变量,帐户名字和余额.DrawThread中的取钱逻辑很简单.先判断余额够不够,如果够,正常取钱,不够的话报余额不足.在TestDraw同时开2个线程取钱,这时候可能会有问题,线程甲判断出还能取钱,准备执行account.setBala 阅读全文

posted @ 2016-03-26 09:27 荷楠仁 阅读(177) 评论(0) 推荐(0)

2016年3月4日

android学习10——对顶点着器和片段着色器的理解

摘要: 图形都是点,线,面组成的.顶点着器指定了顶点的位置,大小和颜色. 看一个顶点着色器的代码 用java代码给顶点着色器中的变量赋值. vertexData类型是FloatBuffer,由保存顶点位置的数组初始化.position(0),指定了从数组第0个位置即为顶点坐标.POSITION_COMPON 阅读全文

posted @ 2016-03-04 08:29 荷楠仁 阅读(539) 评论(0) 推荐(0)

2016年1月7日

android学习9——Handler简单用法

摘要: Handler用来发消息和处理消息.典型的用法是更新界面.android不允许在子线程里面更新界面,通常是把Handler传到子线程中,在子线程里通过sendEmptyMessage函数发消息.Handler的handleMessage函数响应消息,实现更新界面. 下面看一个例子.Handler的定 阅读全文

posted @ 2016-01-07 08:06 荷楠仁 阅读(295) 评论(0) 推荐(0)

2016年1月6日

android学习8——获取view在屏幕上的绝对坐标

摘要: 获取view在屏幕上的绝对坐标在调试时候非常有用. 看如下代码 界面显示如下所示: 日志输入为: getLocationOnScreen得到了view左上角的坐标,单位是像素. 用以下代码去掉标题栏. 界面显示如下所示: 日志输入为: 可以看到没有标题栏.view的左上解绝对... 阅读全文

posted @ 2016-01-06 08:01 荷楠仁 阅读(882) 评论(0) 推荐(0)

2016年1月5日

android学习7——canvas.concat(Matrix matrix)作用

摘要: canvas.concat的作用可以理解成对matrix的变换应用到canvas上的所有对象. 看下面的代码. 以上代码对matrix的x和y坐标都拉伸了2倍.变化的效果如下所示: 在没有concat的情况下canvas.drawRect(100, 100, 200, 200, bgPaint);是 阅读全文

posted @ 2016-01-05 08:10 荷楠仁 阅读(4748) 评论(0) 推荐(0)

2015年12月29日

android学习6——canvas的save,restore作用

摘要: 先看如下代码 画一个矩形,然后将坐标系转动45度,再画一个矩形.发现矩形旋转了45度.再画一个矩形.矩形仍转动了45度.效果如下图所示: 将注释点的save,resotre打开,效果如下图所示: save,restore确保对坐标系的改动只发生在save,restore之间的代码. 阅读全文

posted @ 2015-12-29 13:17 荷楠仁 阅读(295) 评论(0) 推荐(0)

2015年12月3日

android学习5——画图问题

摘要: 重写View中的onDraw函数可以实现画图.代码如下: 要更新画的形状需要调用invalidate()函数.下面是点哪里在哪里画一行文字的代码. 阅读全文

posted @ 2015-12-03 18:54 荷楠仁 阅读(209) 评论(0) 推荐(0)

2015年12月1日

android学习4——View的长宽问题

摘要: 画形状的时间经常会用到点的坐标,这时原点O的位置就非常重要.在像素为1280 720的设备上画一条直线.代码如下所示: 设备像素是1280 720,希望画一条对角线,但代码的效果所下图所示: 并没有画对角线.是因为工具栏和名称的影响.设置成全屏,代码如下: 显示效果如下所示: 阅读全文

posted @ 2015-12-01 00:05 荷楠仁 阅读(264) 评论(0) 推荐(0)

导航