
Android基础
文章平均质量分 92
Ethan_KF
这个作者很懒,什么都没留下…
展开
-
Lazy inflate之ViewStub
很多时候我们想要的功能是,一个view在需要它的时候让它显示,不需要它的时候不希望它显示,最常见的思路是设置view的visible属性,gone、invisible或者visible,但这个做法有个缺陷,就是无论设置哪个属性,这个layout文件都会被解析,做了很多无用功。ViewStub就是为了解决这个问题的。ViewStub继承自View,复写了View的onMeasure方法: @Ov原创 2016-03-29 19:52:50 · 437 阅读 · 0 评论 -
Java单例模式的演进
在Android开发中,单例还是很有用的,一般在上层业务逻辑开发中使用,笔者不推荐在偏底层且跟业务相关的SDK中使用单例,比如网络连接、图片加载,这是因为大型APP会分出许多模块、频道,一旦底层SDK使用单例,上层所有业务都是使用同一个实例,各个模块很难进行个性化使用。下面来看典型的几种单例实现方式。1.非线程安全的方式//非线程安全public class TestSingle ...原创 2019-05-17 17:24:04 · 170 阅读 · 0 评论 -
[长期记录]开发中的小知识点
注:本篇小知识点都是在实际项目中运用过的,比较可靠20170606解压tar包指令tar –xvf file.tar //解压 tar包判断图片格式通过后缀名判断图片是什么格式其实并不准确,可以使用BitmapFactory的方法去判断:String path = "图片路径";BitmapFactory.Options options = new BitmapFactory.Options();原创 2017-06-06 21:01:29 · 433 阅读 · 0 评论 -
Android获取上下文几个方法的区别
先看下继承关系,Activity/Service/Application都是继承自Context的,获取上下文实际获取的是各子类的上下文实例,可能是Activity,也可能是Application等,具体使用哪一个,需要根据当前控件选择,不能随意使用。 1.getContext这是View的一个方法,获取视图上下文,view一般是依托于Activity,所以这个方法返回的是当前Activity实例原创 2017-02-13 11:46:12 · 3897 阅读 · 0 评论 -
Fragment事务与回退栈
一句话总结,回退栈管理的是事务(Transaction),栈里的数据结构是事务,不是fragment本身。FragmentManager manager = getSupportFragmentManager();(这是v4包的,app也有相关方法)FragmentTransaction transaction = manager.beginTransaction();FragmentManage原创 2017-01-20 22:05:55 · 784 阅读 · 0 评论 -
使用gradle区分开发环境
场景:公司服务器与app都会有test、beta、online等环境区分,这些可以在代码里手动修改,然后重新build新的apk文件,而且一个手机上只能装一个app,如果切换环境需要覆盖安装。本博客主要是使用build.gradle文件动态修改开发环境配置,核心是使用BuildConfig这个编译过程生的文件。buildTypegradle中可以指定编译类型,在build.gradle中可以配置bu原创 2017-01-19 14:54:33 · 2330 阅读 · 0 评论 -
MVP模式在实际开发中的使用
业务逻辑写的越来越多,越来越复杂,将业务逻辑都放到Activity中写当时可能觉得很爽,因为写的随意,写的速度也快,但是后期维护很困难,交接项目的成本也很高。MVP模式应运而生。MVP原理M指代model,用于存放数据的模型,用于Json解析、缓存等。 V指代View,通常意义上的Android视图,由于静态的view功能太少,需要Activity控制,这里将Activity视为View,进行视图原创 2017-01-18 00:12:21 · 972 阅读 · 0 评论 -
Android图片适配的来龙去脉
本篇博客只记述图片的适配,尺寸的适配是在dimens文件中加的,与本篇无关。为什么要做图片的适配?一张图片有它的分辨率,比如32x32,就是32个像素x32个像素,不同手机的分辨率不同,而我们想让这些图片在不同分辨率的Android设备上显示它原有的像素,这就是原因。先来看几个变量: (1)分辨率(resolution):常说的手机1080 x 1920的值就是分辨率。(2)像素密度(dpi):d原创 2016-04-18 19:02:26 · 558 阅读 · 0 评论 -
Android为什么不建议写死dp?
基础:Android中很熟悉的一个概念:dp (density-independent pixels),一个dp代表多少实际像素与设备dpi相关,与px(像素)换算关系:dp/160 = px/dpi。由换算关系得到px = (dp * dpi)/160, 看上去意思是相同dp情况下,dpi越大,px值越大,即设备像素密度越高,1个dp代表的实际像素也越多。同理,dpi越小,相同dp时,px值也...原创 2019-06-01 10:59:11 · 1735 阅读 · 0 评论