autolayout使用中的一些坑记录
来源:互联网 发布:腾讯对战平台mac版 编辑:程序博客网 时间:2024/05/21 04:22
很早就接触到autolayout这个适配框架,但是以前觉得可能不是很成熟所以一直没有使用,不过最近项目中正好做适配,索性就用它了。洪洋大神已经把很多功能、注意点以及如何使用都做了很好的解释,我就不多说了,参考博客:http://blog.csdn.net/lmj623565791/article/details/49990941/ 以及github地址:https://github.com/hongyangAndroid/AndroidAutoLayout 不过还是遇到了很多问题,具体如下:
1.自定义view如何适配?
对于自定义view,里面肯定需要一些其他尺寸也需要适配,这时候我们需要知道一件事,就是我们自定义view的宽和高是可以使用框架来进行适配的(洪洋的博客或者giihub中都有介绍),所以我们其他的一些尺寸值,我们就要采用相对值,相对于view的宽和高来取尺寸,例如:假如说UI给的尺寸为500*500,我们自定义view的尺寸为1000*1500,那么我们就应该这么配置尺寸:
w1=0.5*view.getWidth(); h1=v.getHeight()/3;
2.切图如何适配?
这是一个特别让人头疼的事,但是解决了又发现特别好。最开始为了适配平板,我们ui给我切了4套图,但是问题还是有,就是有些平板适配还是不行,当时就纠结了。不过后来想想其实只要切一套图就可以了,只需要xhdpi的图就行,其实我们可以把imageview的尺寸用代码适配写死,然后图片的缩放模式设置为填充,这样就可以通过代码做适配了,还少用了几套图,包减小了不少,很爽。
3.dialog如何适配?
首先说dialog寄存的activity需要使用适配,因为他宿主的很多属性还是会影响到dialog的,这点非常重要,然后就是dialogfragment中:
@Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); View rootView = inflater.inflate(R.layout.fragment_normal_dialog, container, false); AutoUtils.auto(rootView); return rootView; }
其实就是使用AutoUitls.atuo(view)方法就可以了。
4.正方形的图片如何做适配?
像头像等等图片都是正方形的,那么如何来做适配呢?当然洪神的博客上也有,就是如下:
由于该库的特点,布局文件中宽高上的1px是不相等的,于是如果需要宽高保持一致的情况,布局中使用属性:app:layout_auto_basewidth="height",代表height上编写的像素值参考宽度。app:layout_auto_baseheight="width",代表width上编写的像素值参考高度。但是使用的时候注意点就是要按照大的尺寸作为基准,否则会出现图片变大,适配不成功。
- autolayout使用中的一些坑记录
- autolayout中的一些属性
- AutoLayout中的一些方法
- Android AutoLayout 使用记录
- 记录使用javascript中的一些坑
- storyboard中的uiscrollview,使用autolayout
- UIScrollView在Autolayout中的使用
- [Linux] Linux使用中的一些记录
- QTcpSocket使用过程中的一些问题记录
- QTcpSocket使用过程中的一些问题记录
- QTcpSocket使用过程中的一些问题记录
- Python 多进程使用中的一些记录
- Hbuilder 学习使用中的一些记录
- Jmeter使用过程中的一些问题记录
- Autolayout在UITableView中的坑
- Autolayout在UIScrollView中的使用(一)
- iOS Storyboard、xib中的UIScrollView使用autolayout
- mybatis中的一些记录
- Python入门:数据结构的4种基本类型
- xutils上传图片
- require.js的用法
- 怎么在IDEA中怎么设置黑色背景?
- Redis HA
- autolayout使用中的一些坑记录
- 视频基本知识 AD转换和YUV,cb cr基本知识
- Oracle数据库语句大全
- 阿里云搭建基于MatlabMPI的集群(四):阿里云实例之间内网互通
- gdb使用记录
- mysql入门(十九)
- getClientRects()和getBoundingRect()的用法和区别
- 美女购物
- 基数排序算法,讲解+算法实现