- 博客(9)
- 收藏
- 关注
原创 App升级后自启动方案
在应用升级时,有升级完成后自动启动的需求,可以采用静态广播接收者的方式来实现。 首先,创建一个广播接收者,对广播进行处理public class ApkInstallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) {
2017-07-13 15:30:14
1946
原创 本地和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
422
原创 电视机和机顶盒等焦点问题
近期做的项目是在电视、盒子和投影机上运行的,在焦点问题上趟出了之前手机项目没有遇到的坑。 由于项目需要,focus和normal状态下的背景图都是服务器下发的,(有的朋友可能问了,那大小不一致的按钮怎么办?哈哈,考虑到这个问题,下发的都是点9图,下一篇博客将介绍如何获取本地点9图,有兴趣可以看看。) 但是为ListView的各个条目设置StateListDrawable后,问题来了,没生效啊,后
2017-07-12 16:05:13
600
原创 View注入
使用Butterknife等视图注入工具可以减少findViewById这样没有营养的代码,那么这类工具的原理是什么呢?反射。通过反射,我们可以获取一个类的成员变量、方法,并进行修改和利用。那么我们就动手来写一个InjetView工具吧。 首先,创建一个注解类,用来标识要注解的变量。@Target(ElementType.FIELD)//表示该注解作用于成员变量等@Retention(Reten
2017-07-12 15:44:57
277
原创 子线程创建Handler
朋友跳槽,面试时被问到子线程可以创建Handler吗?对于这个问题,其实我也是有点疑惑,暂且不论子线程创建Handler的应用场景,对于能不能创建这个事情我还是比较好奇的,作为一名爱较真的程序猿,马上打开AndroidStudio写个demo测试。 new Thread(){ @Override public void run() {
2017-07-12 15:20:18
573
原创 Android亮度控制
Android有屏显示设备一般都有自动调节功能,但有的时候,根据需求,可能有调节亮度的需求,留下备用了。public class BrightnessTools { /* Android的屏幕亮度在2.1+的时候提供了自动调节的功能, * 所以,如果当开启自动调节功能的时候, 我们进行调节好像是没有一点作用的, * 只有进行判断,看是否开启了屏幕亮度的自动调节
2016-12-06 11:49:42
568
原创 Android处理未捕获的异常Application应用生命周期变量
在开发过程中,我们在某些情况下可能要在整个应用的各个四大组件或Fragment或其他地方使用到某些变量,同时,开发一个App时,可能某些异常并没有捕获到,我们都可以进行相应的处理。具体方式如下:1.创建一个MyApplication类继承Application,在清单文件的Application节点添加:android:name="包名.MyApplication",让它使用这个MyAppli
2016-09-22 15:40:41
529
原创 Android性能优化的一些方案
手机或平板受到硬件缺陷,在应用越装越多,或者使用一段时间后,用户会感觉性能能不佳,或者我们开发的App时程序优化不好,造成用户体验不好,例如卡频,迟缓等,我们应该注意Android的性能优化。接下来,将从四个方面分析一下优化方案。一、优化Dalvik虚拟机的堆内存分配1)内存方面,可以参考 Android堆内存也可自己定义大小和优化Dalvik虚拟机的堆内存分配对于Android平
2016-09-22 15:22:34
289
原创 Fragment的getActivity方法返回null的多种解决方法
Fragment的getActivity方法返回null的多种解决方法
2016-09-22 14:42:05
4118
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人