经常在开发过程中学习到一些有用高效的Tips,这些Tips能帮助我们更好的构建我们的应用。《打造高质量Android应用》中记录了50个诀窍,在此记录下自己陌生或或易忘Tips,供以后开发查询警惕。
布局相关
对于使用Weight属性的View控件而言,与其ParentView及Width(height同理)满足一下公式:
1
View's real Width = View's Width + View's Weight * ParentVie's Width / WeightSum
include标签的注意点
- include 标签中覆盖声明 android:layout_width 和 android:layout_height 属性会覆盖被引入布局中任何 android:layout_*属性。
- 由于被引入的布局无法预先知道其父布局的类型(线性?相对?),所以建议把所有 android:layout_* 属性写在标签中,而引入的布局中 android:layout_ width 和 android:layout_height 都指定为0dp。
- 不要试图在OnCreat方法中获取View的宽高,不过可通过post方法获取
1
2
3
4
5
6view.post(new Runnable() {
public void run() {
//获取view的宽高
}
});
工具相关
- 实用ProGuard来移除日志语句,具体可参考官网压缩代码与资源。
可复用性
同时可发起多个Intent操作,例如:
1
2
3
4
5
6
7Intent pickIntent = new Intent(Intent.ACTION_GET_CONTENT);
pickIntent.setType("image/*");
Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Intent chooserIntent = Intent.createChooser(pickIntent,"选图or拍照");
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{takePhotoIntent});
startActivityForResult(chooserIntent,0);对于兼容旧API的处理方法,可参考v4包中SharedPreferencesCompat或ContextCompat等兼容类来处理。
心得感悟
整体过了两遍,里面部分Tips随着Android Api及开源技术的更新已经有了新的方法实现。不过从开发者角度(我自己)而言,可以学习到如何处理项目细节,补上知识遗漏点及强化一些之前未留意的知识点,学习别人的代码思维及项目大局观。