![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术
theNullPointer
专注于android开发,对面向对象和android平台的开发有着深入理解和认识,熟悉和精通android开发的各项技能,能采用h5和android混合开发的方式快速开发,精通WebView和JavaScript交互,熟悉jni和直播技术
展开
-
View注入
使用Butterknife等视图注入工具可以减少findViewById这样没有营养的代码,那么这类工具的原理是什么呢?反射。通过反射,我们可以获取一个类的成员变量、方法,并进行修改和利用。那么我们就动手来写一个InjetView工具吧。 首先,创建一个注解类,用来标识要注解的变量。@Target(ElementType.FIELD)//表示该注解作用于成员变量等@Retention(Reten原创 2017-07-12 15:44:57 · 268 阅读 · 0 评论 -
电视机和机顶盒等焦点问题
近期做的项目是在电视、盒子和投影机上运行的,在焦点问题上趟出了之前手机项目没有遇到的坑。 由于项目需要,focus和normal状态下的背景图都是服务器下发的,(有的朋友可能问了,那大小不一致的按钮怎么办?哈哈,考虑到这个问题,下发的都是点9图,下一篇博客将介绍如何获取本地点9图,有兴趣可以看看。) 但是为ListView的各个条目设置StateListDrawable后,问题来了,没生效啊,后原创 2017-07-12 16:05:13 · 595 阅读 · 0 评论 -
本地和asset点9图加载
在加载本地或者asset中的点9图时,实际上就是先加载为bitmap对象,然后判断是否有NinePatchChunk,有就是点9图,获取其属性,封装为NinePatchDrawable即可正常使用。工具类代码如下:public class NinePatchUtils { private final static int NO_COLOR = 0x00000001; private Ni原创 2017-07-12 16:12:57 · 411 阅读 · 0 评论 -
App升级后自启动方案
在应用升级时,有升级完成后自动启动的需求,可以采用静态广播接收者的方式来实现。 首先,创建一个广播接收者,对广播进行处理public class ApkInstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) {原创 2017-07-13 15:30:14 · 1936 阅读 · 0 评论