基于鸿洋大神写的4个percentlayout.java。
首先看一下效果图:
假如有这样一张设计图:
如果UI告诉你他的设计基于720*1280像素的屏幕,OK,直接计算百分比然后在xml里面按照下面的代码设置控件宽高。
例如中间的title”个人计分“宽=160px,高=40px
40/1280=0.03125,
160/720=0.22222.
则XML里面对这个TextView的宽高为:
(偷偷告诉大家,支持浮点型哦)
app:layout_heightPercent="3.125%w"
app:layout_widthPercent="22.222%w"
<!--当然也可以设置margin
app:layout_marginPercent="5%w"-->
或者说,我想保证我的控件是正方形,则直接只参考宽或者参考高就行了。即:
<!--保证了正方形-->
app:layout_heightPercent="15%w"
app:layout_widthPercent="15%w"
目前支持:LinearLayout RelativeLayout FrameLayout 三大父布局,并且支持Scroll竖向滑动,但是却不支持HorizontalScroll 横向滑动(这是唯一遗憾的地方了)但是这并不意味着我们没有解决方案了。
LOOK:
此时,在HorizontalScrollView内部无法使用百分比布局,BUT,我们可以在java代码中动态设置HorizontalScrollView里面控件的大小,根据获取到的屏幕像素的大小和控件的大小设置百分比,同样可以达到百分比布局的效果。,见下面代码:
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int displayWidth = displayMetrics.widthPixels;
int displayHeight = displayMetrics.heightPixels;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
(int)(displayWidth*0.5),
(int)(displayHeight*0.5));
buttons.setLayoutParams(layoutParams);
到这儿我们就完全可以实现所有控件的百分比布局,是不是很棒呢~~
下面这个jar解压出来,将4个java文件拷贝进你的项目任何包里面,将attrs.xml拷贝进values里面OK。
下载地址: http://download.csdn.net/detail/u012534831/9532492
QQ:1003077897
blog:http://blog.csdn.net/u012534831
github:https://github.com/qht1003077897