android杂项笔记,关于横屏纵屏问题,混淆问题备份

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,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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值