- 博客(15)
- 资源 (29)
- 收藏
- 关注
原创 天天记录 - Android requestLayout源码简单分析
先来看以下View.requestLayout源码 /** * Call this when something has changed which has invalidated the * layout of this view. This will schedule a layout pass of the view * tree. */
2013-01-31 21:54:22 4047
原创 天天记录 - Android setVisibility参数VISIBLE, GONE, INVISIBLE与源码简单分析
View有一个方法setVisibility,作用是可以控制视图的显示和隐藏,int类型的参数可以传入三种值View.VISIBLE, View.GONE, View.INVISIBLE,其中VISIBILE表示设置视图显示,GONE和INVISIBLE设置视图隐藏,区别在于前者隐藏后不占用视图空间,而后者隐藏后依然占用视图空间。具体不同看下源码: /** *
2013-01-30 20:29:29 6246
原创 天天记录 - Android View中的开关学习即位运算
Android 中经常看到View.mPrivateFlags参数进行位运算,最常见的是invalidate,touch,measure,layout,draw相关的开关设置,下来一起来看看位运算。名称符号计算规则计算含义取反~对一个二进制数的每一位执行逻辑反操作.使数字1成为0, 0成为1a = 01
2013-01-29 22:35:37 1969
原创 天天记录 - Android ListView onTouchEvent源码分析
Android ListView onTouchEvent源码简单分析,在看代码之前先来看下代码结构图一、onTouchEvent源码 @Override public boolean onTouchEvent(MotionEvent ev) { if (!isEnabled()) { // A disable
2013-01-28 22:13:41 4544
原创 Android ListView初始化简单分析
下面是分析ListView初始化的源码流程分析,主要是ListVIew.onLayout过程与普通视图的layout过程完全不同,避免流程交代不清楚,以下是一个流程的思维导图。 思维导图是顺序是从左向右,从上向下。一、 先看构造函数,上图中1.1就不分析了,主要是读取一些ListView参数,直接来看1.2 ViewGroup构造函数源码 pr
2013-01-27 22:36:35 16133 5
原创 天天记录 - Android TextView跑马灯效果
TextView本身提供跑马灯效果支持, 只需要按以下配置,注意Width必须设置固定值且必须小于文字的总宽度,才会有跑马灯效果 <TextView android:id="@+id/textview" android:layout_width="200px" android:layout_height="wrap_content
2013-01-26 22:13:33 1560 1
原创 天天记录 - Android refreshDrawableState源码及流程简单分析
有多种因素会导致触发refreshDrawableState,当前只考虑其中一种setPressed即设置视图是否处于被按下状态。其他会触发此方法的有focusChanged等。 原理是定义不同状态的图片,系统进行状态监听例如在onTouchEvent中判断当前在什么状态,再根据之前提供的图片进行设置并重绘显示效果。 以下是根据代码一个具体的流程,其中解释的并不是太多,当前也都
2013-01-23 22:43:44 9800
原创 天天记录 - Android ListView itemType使用Holder原理简单分析
之前写过一篇关于Holder复用原理的文章《Android ListView使用Holder优化原理》,此篇着重分析RecycleBin数据结构源码在AbsListView中,RecycleBin一共有两个存储结构分别是ActiveViews 和 ScrapViewsActiveViews储存当前在界面(手机显示区域)中显示View,移出界面会存入ScrapViews
2013-01-22 22:32:55 4696 2
原创 天天记录 - Android Touch Event接收并传递给Activity
代码执行堆栈ViewRootImpl.dispatchMotionViewRootImpl.dispatchPointer (sendMessage)ViewRootImpl.handleMessage @Override public void handleMessage(Message msg) { ......
2013-01-21 23:09:29 3380 3
原创 天天记录 - Ubuntu 12.04编译并配置Android Windows SDK
我是先编译完Android源码之后执行的此操作,源码版本Android 4.2.1,主要参考文档源码目录下/sdk/docs/howto_build_SDK.txt一 在Ubuntu 下编译Windows SDK 安装工具$ sudo apt-get install mingw32 tofrodos切换到Android源码目录下执行$ . build/e
2013-01-19 10:26:14 3205
原创 天天记录 - Android TextView setMaxLines后获取完整高度
TextView设置完setMaxLines后,通过TextView.getHeight方法获取的是当前行数的高度,而非文字完全显示的高度。 以下左边的图是《选择》这首诗一共只显示5行,右侧的图片中可以看到5行文字的高度,但是此时获取不到完整显示时TextView的高度 textView.setMaxLines(5); textView.getHeight(); /
2013-01-11 22:52:00 8282
原创 天天记录 - Java 精确计算避免使用float和double
一 问题描述 float和double类型不能用于精确计算,其主要目的是为了科学计算和工程计算,它们执行二进制浮点原酸,目的是为了广泛的数值范围上提供较为精确的快速近似计算而精心设计的。但是如果设计钱币之类的计算需要很精确,所以这种情况不能使用float和double,因为要让其精确表示0.1 或者 10的任何负数次方值是不可能的。二 眼见为实,举例证明: //
2013-01-07 22:15:27 4378
原创 ListView setAdapter has already been called 异常
一 遇到问题ListView HeaderView使用过程中遇到的问题1. 必须在setAdapter之前执行addHeaderView方法,否则会出现以下异常java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called.
2013-01-06 22:44:54 13594
原创 Android 分辨率 及 px, dip相互转换
如果只是想查800 * 480屏幕手机,px值转dip公式是: dip = px / 1.5; 下面解释为什么这样计算一 手机尺寸分布情况,来自Android官网 ldpimdpihdpixhdpismall1.7% 1.0% normal0.4
2013-01-05 22:15:58 2095
原创 天天记录 - Android获取屏幕尺寸,分辨率3种方法
Android提供3种方式可以获取当前手机屏幕尺寸,伪代码如下: // 方法 1 DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); metrics.widthPixels metrics.heightPi
2013-01-04 22:59:02 1560
Android 多渠道批量打包
2013-09-12
Android ListView 可拖拽Item 1 - 创建浮动Item
2013-04-22
Android 可移动悬浮窗口 WindowManager
2013-04-10
Android 实现ListView 3D效果 - 2 - 弹性滚动,Fling
2013-04-09
Android 实现ListView 3D效果 - 1
2013-04-07
Android 自己动手写ListView学习其原理 3 ItemClick,ItemLongClick,View复用 2013-0
2013-03-31
Android 自己动手写ListView学习其原理 2
2013-03-31
Android 自己动手写ListView学习其原理 1
2013-03-28
Android Path Button效果
2013-03-24
Android 使用Scroller自动滚动第二种实现
2013-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人