摘要: 1. 直接自定义。通过attrs.getAttributeXXXValue获取 2. 定义在attrs.xml文件中,通过Context.ObtainStyledAttributes和TypeArray.getxxx获取 阅读全文
posted @ 2016-05-09 17:10 西城铁 阅读(151) 评论(0) 推荐(0) 编辑
摘要: Android view的padding是view的一部分,可以点击,背景色也覆盖padding; margin则不属于view,不能点击,背景色也不覆盖。 如果想结合二者,让view的主体有背景,边缘没有背景色,同时整个view又可以点击,怎么方便呢? 很简单的不凡是使用InsetDrawable 阅读全文
posted @ 2016-03-23 16:48 西城铁 阅读(199) 评论(0) 推荐(0) 编辑
摘要: onFinishInflate在parse完xml后被调用。所以此时查看其子view,只有在xml中静态定义的。 阅读全文
posted @ 2015-07-29 17:24 西城铁 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 对于Android UI类的单元测试,以前写的有些代码就是sleep 10秒,然后肉眼检查下。这样子在自动化测试中没有用。 今天修改了下代码,其实肉眼检查也就是检查pixel的颜色,所以可以直接获取view的某个点的颜色,然后跟期望值比较就行了。 阅读全文
posted @ 2015-07-02 17:38 西城铁 阅读(223) 评论(0) 推荐(0) 编辑
摘要: android:targetSdkVersion的工作原理 阅读全文
posted @ 2015-06-26 19:39 西城铁 阅读(7552) 评论(0) 推荐(0) 编辑
摘要: 用个例子来解释下最近遇到一个问题。在android sqlite3命令行中执行create table t(a)创建表。这里不指定a的具体类型。然后执行insert into t values(0)。如果我在sqlite3命令行中使用"select * from t where a = 0",能查询... 阅读全文
posted @ 2015-01-22 15:06 西城铁 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 总结下在Android的actionbar中实现点击一个按钮出现子菜单(包括spinner)的各种方法。 阅读全文
posted @ 2015-01-20 18:40 西城铁 阅读(724) 评论(0) 推荐(0) 编辑
摘要: 利用Android VpnService技术实现免root流量防火墙。 阅读全文
posted @ 2014-12-12 17:50 西城铁 阅读(4598) 评论(36) 推荐(4) 编辑
摘要: 重构代码时经常遇到一个子方法(或者类)有复杂的if-else,可以处理多种情况。此时该方法的调用者貌似很简单,只需要简单的调用该方法即可。但事实上,所有的复杂逻辑都落到该子方法钟。结果导致子方法的本来互不关联的调用者也变得互相耦合。即,我只想因为调用者A修改子方法,则因为子方法被修改,其他调用者都可... 阅读全文
posted @ 2014-11-27 15:27 西城铁 阅读(142) 评论(0) 推荐(0) 编辑
摘要: gravity用来描述当前view的内容在view中的位置。例如 那么hello就会出现在按钮的最下方。如果当前view是个view group,例如 那按钮会出现在layout的最下方。对这个例子,也就是屏幕的最下方。如果把button的宽高都改为match_parent那对于 button... 阅读全文
posted @ 2014-08-14 11:32 西城铁 阅读(1158) 评论(0) 推荐(0) 编辑