自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 view刷新机制

1.首先由viewRoot对象调用draw()绘制整个view树2.每次绘制时,只绘制需要重绘的view3.view内部有一个标志位DRAW,需要绘制就添加该标志位。调用的流程:1.绘制背景2.渐变框准备3.调用onDraw绘制view本身,调用disptchDraw方法绘制子视图。

2016-08-26 10:17:06 286

原创 view的优化

1.onDraw中不要做内存分配工作2.在初始化或动画间隙做内存分配工作3.不要在动画正在执行使做内存分配工作4.尽量减少onDraw的重画次数,即减少invalidate的调用次数5.尽量使用4个参数的invalidate,因为这个方法不会重新绘制整个view6.自定义viewGroup去执行requestlayout操作

2016-08-26 10:00:43 180

原创 RemoteViews的用处

remoteview:远程视图,能获得不同进程中的对象。1.用在AppWidget中,即手机桌面上的小窗口工具,如音乐播放器控件。  使用:创建AppWidgetProvider的子类,而AppWidget与程序之间的交互就是通过Remoteview完成的。2.用在自定义notification中,因为notification的定义和显示不再一个进程中。使用:创建remotevie

2016-08-26 09:55:10 171

原创 热加载

介绍热加载之前,首先要介绍一下类加载的机制:类加载通过classloader实现,android中默认使用pathclassloader作为加载器(继承BaseDexClassloder并重写了其findclass()方法),而BaseDexClassloder中的findcalss()方法使用new出来的DexPathList对象的findclass()方法,作为真正的实现方法。De

2016-08-26 09:38:21 370

原创 activity的四种状态以及内存回收优先级

1.activiti的四种状态 活动状态:在屏幕的前台,获取了焦点,可以响应用户操作暂停状态:activity失去焦点,但对用户可见,(如在其上有一个Toast或者alertDialog),此状态的活动是存活的,它保留着所有状态和成员信息,在内存极小时候可能被杀掉停止状态:完全被另一个activity所遮挡,但他保留了所有信息,只是对用户不可见,其他地方需要内存往往被杀掉非活动状态

2016-08-26 09:37:08 1349 1

原创 View 的绘制流程

当一个Activity接收焦点,它将被要求画出它的布局。Android框架将处理画图,但Activity必须提供根节点布局的层次结构。     从图的根节点开始布局(绘制),然后开始测量和绘制布局树。 通过遍历树和渲染来绘制每个视图,相交无效区域。反过来,每个视图组负责请求它的每个孩子绘制(draw() method)和每个视图负责绘画本身。因为树是遍历顺序,这意味着父母将被先绘制,孩子视图后

2016-08-05 11:24:22 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除