2014年8月9日

摘要: 0.添加壁纸:在给系统换默认的壁纸的时候,需要修改一些地方:首先是默认的壁纸,这个是在framework中配置的,所以要修改framework中找到drawable-nodpi(这个文件夹中的内容都不会做缩放处理)中配置的一个叫做default_wallpapaer的壁纸.其次就是替换lanucher中的壁纸,需要修改的地方有:在文件夹drawable-nodpi中添加壁纸,然后在values的w... 阅读全文
posted @ 2014-08-09 14:13 itiscoder 阅读(644) 评论(0) 推荐(0)

2014年3月26日

摘要: 今天在图书馆看了一个android性能优化。 关于布局优化有几个小技巧: 1.尽量减少布局的嵌套,而使用相对布局,这样的话会减少布局对象的创建,并且可以再事件传递的时候减少传递嵌套。 2.使用include可以复用布局。 3.使用megre作为父布局往往可以减少同样的布局嵌套。 4.使用viewsub可以再延时加载布局。 有点简短也没有说原理,记录一下,好好读一下那本书在写一个博客吧。 阅读全文
posted @ 2014-03-26 22:41 itiscoder 阅读(168) 评论(0) 推荐(0)
 
摘要: 集合本来就是为了方便开发的,实现了一些基本数据结构,一般来说数据结构有两种物理的实现:数组和链表。数组是连续的空间,链表是不连续的。基于这两种又扩展了很多的数据结构。队列,栈,hash表,树。在java中有两种,一种是collection,主要是为了存储对象集合。一种是map,主要存储键值对。要了解各种java集合怎么使用就必须了解底层的数据结构。collection是一个总的接口,有子接口set和list。然后还有一些抽象类,实际上这些所有的接口和抽象类,只不过定义了一些行为而已,真正的数据结构定义都是在每一个实现类中。list:主要的实现类有arraylist,正如名字一样底层就是数组。l 阅读全文
posted @ 2014-03-26 20:04 itiscoder 阅读(265) 评论(0) 推荐(0)
 
摘要: 一直认为android手势识别很是神奇,我们不分析复杂的手势,仅仅是针对上一次的基本事件的手势处理,分析GestureDetector的源码,来看一下到底手势事件是如何定义的。GestureDetector使用的时候要new一个对象然后使用手势处理器的ontouchevent进行处理event事件。实际上就是android给你处理好了各种事件,然后让你做一个接口回调,给你回调所需要的手势事件。首先来说可以实现的事件:单击,双击,长按,移动,滑动。然后还有一些down事件,up事件。其实主要就是前面的事件。tip:有必要描述一下这些事件究竟是什么?单击是在规定的单击时间内的down+up。长按和 阅读全文
posted @ 2014-03-26 02:19 itiscoder 阅读(698) 评论(0) 推荐(0)
 
摘要: 在view绘制完成后,要想在和view交互一定就要使用事件了,这些事件包括触屏,按键,以及轨迹球,说起轨迹球,在黑莓的手机上常见,现在触屏出来之后基本上就没有这个东西了。这些事件从屏幕上产生出来,会进行硬件中断,然后交给操作系统,然后由操作系统分发给我们的应用,我们就从frameworlk层开始分析。首先是由windowmanagerservice接收到之后会使用共享内存和管道和我们的程序进行进程通讯,也就是ViewRoot之前就说过他是管理view的事件的。它存在windowmanager中,当Viewroot调用dispatchPointer方法调用diliverpointerevent就 阅读全文
posted @ 2014-03-26 01:23 itiscoder 阅读(418) 评论(0) 推荐(0)

2014年3月25日

摘要: 既然是view,为什么要说window,实际上着是一个很有用的东西,在展现view和设计界面上很有用,就比如说悬浮窗但是这时候又要分清楚一个概念,window到底是什么?在activity中说过了我们的view的父类是一个decorview,decroview是phonewindow的内部类,而phonewindow就是我们所说的window,想这样一个问题,那界面上的那些statusbar和对话框,以及toast又是一些什么?如果抽象思维好,oo思维好,那么一定会明白这些东西其实都一样,都是phonewindow。也就是说所有有边界的东西都是window,也就是phonewindow。包括对 阅读全文
posted @ 2014-03-25 22:22 itiscoder 阅读(347) 评论(0) 推荐(0)
 
摘要: view中除了必要的移动之外,也可以使用动画来完善视觉效果。android中的动画在2.3之前只有帧动画和补间动画。3.0之后就加入了属性动画。其实说到动画是什么?就是一个连续的view的集合。帧动画是不断的切换view,补间动画就是不断的绘制两个状态之间的view,形成补间内容。属性动画实际上是加强了动画,在之前的基础上更加灵活,几乎实现了任何有属性的对象的动画效果。其实原理也很简单就是两个状态之间的不断变化。tip:关于3.0之前动画插值器的历史:2.3的时候补间动画的插值器interpolater接口有getInterpolation(float input)方法,后来3.0之后就是去掉 阅读全文
posted @ 2014-03-25 20:03 itiscoder 阅读(428) 评论(0) 推荐(0)

2014年3月24日

摘要: 首先,为什么要使用xml来配置view的视图,这个是mvc的一个思想,你可以把前端和数据分离,可以想一下一个及其复杂的视图假如要修改面对复杂的代码是多么的发愁,xml更明了的表达了视图。然而我们知道android中的view有两种形式,代码和xml。但是终究还是代码,只有完整的描绘出view对象。才可以把view完美的显示在手机上,也就是说在view绘制之前,都是把view的xml属性转化为了view对象的属性。这也就是为什么要layout中使用xml布局自定义view的时候要使用两个参数构造函数了。attributeSet attrs 就是你在xml中书写的属性。明白了这个道理,就说一下an 阅读全文
posted @ 2014-03-24 20:39 itiscoder 阅读(306) 评论(0) 推荐(0)

2014年3月23日

摘要: 灵感来自effective java关于对象,是java的核心,如何有效的创建其实是一个值得关注的地方。1.静态工厂:这是一个值得关注的,并且应该时刻考虑的方法。优点:1.他是有名字的,这个是如何作为一个优势?假设在一个别人写的类有好几个构造函数,你应该使用哪个?哪个才是最佳的?这时候要是有一个名字就好了,但是普通的构造都是一样的名字。静态构造可以完美解决。2.可以控制对象构建,普通的构造函数只是返回一个本对象,并不能对对象作出控制,比如静态工厂结合私有构造,就可以控制构建对象的数量,也可以把对象构建缓冲池,来进行对象的复用。还有一个技巧,假如参数传递的一致就返回同一个对象。这样对象就可以使用 阅读全文
posted @ 2014-03-23 02:25 itiscoder 阅读(342) 评论(0) 推荐(0)
 
摘要: 说到绘制,其实就是如何把一个view的对象,变成手机上可视的图形。很多人总结3个过程:测量,布局,绘制。这也是所有的要显示图形的程序所应该抽象的3个步骤,测量就是测量出你view的大小,布局就是要显示在屏幕的哪个坐标位置,绘制就是把图形画到屏幕上。view和viewgroup的处理方法是不同的。view:1.measure:要测量应该考虑的就是view的大小,重点看view中的measure,首先是判断是否有必要测量view中有一个mprivateflags是一个标志位,标志了view的所有的状态表示。判断是否要FROCE_LAYOUT。然后判断现在的测量的大小和一个之前测量的大小是否一样。之 阅读全文
posted @ 2014-03-23 01:19 itiscoder 阅读(283) 评论(0) 推荐(0)