android杂项笔记,关于横屏纵屏问题,混淆问题备份
来源:互联网 发布:打怪升级的网络手游 编辑:程序博客网 时间:2024/06/11 10:56
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
上面错误导致的原因是所有子Module都不能配置混淆,即minifyEnabled true
所有被主Module直接或间接引用的子Module的AndroidManifest.xml文件内容都会合并到主Module的AndroidManifest.xml文件中,
包括权限,注册的组件等
所有Module下res目录中的内容也会合并到主Module的res对应目录和文件中。
在主Module中配置的混淆,会作用在所有的Module上,即其他的Module也会被混淆。
layout目录描述:
layout-port为竖屏时的布局目录。
layout-land为横屏时的布局目录。
layout为默认目录,即:
竖屏时,系统会首先寻找layout-port目录的布局,如果找不到则使用layout目录的布局;
横屏时,系统会首先寻找layout-land目录的布局,如果找不到则使用layout目录的布局。
屏幕适配方案的缺陷,针对横屏的时候:
发现日常使用的手机有两种常见的分辨率和density值
1280x720的分辨率,density值为2,但是发现:widthDP值为360dp,heightDP值为640dp
1920x1080的分辨率,density值为3,但是发现:widthDP值为360dp,heightDP值为640dp
于是在横屏时,手机的widthDP值为360dp,则系统会寻找默认的values目录下的dimens.xml文件的dp_xxx变量。
注意了,此时,如果手机切换成横屏,那么手机的widthDP值为640dp,故此时系统会寻找values-w640dp目录下的dimens.xml中的dp_xxx变量。
此时,如果页面上有个按钮的宽高都为28dp,而你使用了@dimen/dp_28,实际值则是49.78dp( 根据比例计算28*(640.0f/360.0f) ),故会变大很多。
所以没有办法,横屏时的页面不能做适配了,
在横屏时我一般是从新进行页面编辑,只要控件ID没有在acivity中有代码操作,两个界面可以有不同的控件和布局
在自定义控件的时候,控件内容动态生成了TextView,但是想提供方便在空间容器上提供设置内部TextView字体的属性,注意看下面:
1、获取字体大小:
imageTextSize = array.getDimensionPixelSize(attr,
(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, TEXT_SIZE, getResources().getDisplayMetrics()));
2、设置给TextView:
textView.setTextSize(imageTextSize);
然后和普通的TextView对比,有没有发现textView.getTextSize()值一样,但是自定义控件内部的TextView字体却大一倍?
原因在于,我们通过步骤一获取到字体后,必须这么设置字体才行 textView.getPaint().setTextSize(imageTextSize);
是画笔的字体大小。
> Compilation failed; see the compiler error output for details.
上面错误导致的原因是所有子Module都不能配置混淆,即minifyEnabled true
所有被主Module直接或间接引用的子Module的AndroidManifest.xml文件内容都会合并到主Module的AndroidManifest.xml文件中,
包括权限,注册的组件等
所有Module下res目录中的内容也会合并到主Module的res对应目录和文件中。
在主Module中配置的混淆,会作用在所有的Module上,即其他的Module也会被混淆。
layout目录描述:
layout-port为竖屏时的布局目录。
layout-land为横屏时的布局目录。
layout为默认目录,即:
竖屏时,系统会首先寻找layout-port目录的布局,如果找不到则使用layout目录的布局;
横屏时,系统会首先寻找layout-land目录的布局,如果找不到则使用layout目录的布局。
屏幕适配方案的缺陷,针对横屏的时候:
发现日常使用的手机有两种常见的分辨率和density值
1280x720的分辨率,density值为2,但是发现:widthDP值为360dp,heightDP值为640dp
1920x1080的分辨率,density值为3,但是发现:widthDP值为360dp,heightDP值为640dp
比喻很巧,你的测试机widthDP值为360dp,heightDP值为640dp
于是在横屏时,手机的widthDP值为360dp,则系统会寻找默认的values目录下的dimens.xml文件的dp_xxx变量。
注意了,此时,如果手机切换成横屏,那么手机的widthDP值为640dp,故此时系统会寻找values-w640dp目录下的dimens.xml中的dp_xxx变量。
此时,如果页面上有个按钮的宽高都为28dp,而你使用了@dimen/dp_28,实际值则是49.78dp( 根据比例计算28*(640.0f/360.0f) ),故会变大很多。
所以没有办法,横屏时的页面不能做适配了,
在横屏时我一般是从新进行页面编辑,只要控件ID没有在acivity中有代码操作,两个界面可以有不同的控件和布局
在自定义控件的时候,控件内容动态生成了TextView,但是想提供方便在空间容器上提供设置内部TextView字体的属性,注意看下面:
1、获取字体大小:
imageTextSize = array.getDimensionPixelSize(attr,
(int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, TEXT_SIZE, getResources().getDisplayMetrics()));
2、设置给TextView:
textView.setTextSize(imageTextSize);
然后和普通的TextView对比,有没有发现textView.getTextSize()值一样,但是自定义控件内部的TextView字体却大一倍?
原因在于,我们通过步骤一获取到字体后,必须这么设置字体才行 textView.getPaint().setTextSize(imageTextSize);
是画笔的字体大小。
阅读全文
0 0
- android杂项笔记,关于横屏纵屏问题,混淆问题备份
- 关于android打jar文件混淆问题
- 关于Android项目混淆遇到的问题
- 关于Android studio混淆遇到的问题
- Android studio 混淆问题
- Android 混淆问题总结
- Android 混淆问题集锦
- Android 混淆问题
- Android混淆问题
- Android 打包混淆问题
- [Android] Android 开发杂项问题记录
- 关于App混淆的问题
- Android——关于混淆代码可能带来的问题
- Android 混淆代码问题总结
- Android 混淆代码问题总结
- android混淆编译 ---- 问题汇总
- android proguard混淆apk问题
- Android应用混淆问题记录
- imageview+handler+gridview+上拉下拉
- 电商购物
- 线段树乘法取%版
- Android popwindow简单实现弹框
- 用OpenCV检测图像中的长方形画布或纸张并提取图像内容
- android杂项笔记,关于横屏纵屏问题,混淆问题备份
- JavaScript实时反馈系统时间
- Codeforces-877E:Danil and a Part-time Job(DFS序列+线段树)
- 全局捕获异常类
- 各大公司Java后端开发面试题总结
- 素数
- 简单实现购物车和本地购物车
- Shadowsocks 一键安装脚本
- Docker 容器连接