说说今天写这篇文章的目的吧。在做项目开发的时候,有一些经常要用到的代码片段,但是我比较笨,记忆力不好,每次要用到的时候,都要去搜索,觉得很浪费时间,而且有的代码放到项目中根本不生效。于是,趁今天有空,索性把这些经常用到的小知识整理一下,方便日后使用。另外这篇文章也会持续更新,在项目中经常用的都汇总到这里,如果有不对的地方,请小伙伴们指出!
1.安卓中各种尺寸的获取
- 获取屏幕的宽高
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int widthPixels = metrics.widthPixels;
int heightPixels = metrics.heightPixels;
- 获取状态栏高度
Rect rect= new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rectangle.top;
- 获取App区域的宽高
Rect rect = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
- 获取View布局区域的宽高
Rect rect = new Rect();
getWindow().findViewById(Window.ID_ANDROID_CONTENT).getDrawingRect(rect);
2.解决库冲突
依赖库重复包含时就会出错,可以在项目的build.gradle文件中添加exclude标签,去除重复编译的库,语法格式如下图:
3.版本号和版本名称
当应用需要发布到应用的时候,通常需要确定APP的版本号和版本名称。这时候可以找到项目的build.gradle,在defaultConfig节点下更改即可
defaultConfig {
applicationId "com.poobo.linqibike"
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.31"
}
versionCode 就是版本号,versionName就是版本名称。
APP发布到应用市场后,通过versionCode识别软件版本,而versionName是展示给用户的。所以在APP更新的时候,versionCode需要加大,以便让应用市场识别更新。
另外,细心的朋友可能会发现,以前用eclipse做开发的时候,versionCode和versionName是写在AndroidManifest.xml中的,现在问题来了,如果同时在build.gradle和AndroidManifest.xml中声明,究竟以哪个为准呢?毫无疑问,答案是以build.gradle为准,因为在android studio中,gradle负责apk的编译