AndroID 图片显示与屏幕适配的问题
在AndroID开发中比较头疼的是AndroID的分辨率问题,那么这里给大家介绍个万能办法,这个办法的优点是可以实现万能适应,给开发和美工设计提供了依据,但是对开发来说代码量也不少,具体办法:
(1)获取屏幕的尺寸
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);display d = windowManager.getDefaultdisplay();mWIDth = d.getWIDth();mHeight = d.getHeight();displayMetrics dm = getResources().getdisplayMetrics()mScreenDensity = dm.density;
(2)美工设计图的尺寸
uiWIDth,uiHeight
(3)获取缩放比例
float scaleWIDth = mWIDth / uiWIDth;float scaleHeight = mHeight/ uiHeight;
(4)所有布局的尺寸用代码实现:
public static int getWIDthSize(int size) { return (int) (size * scaleWIDth); } public static int getHightSize(int size) { return (int) (size * scaleHeight); } public static float getTextSize(int pxSize) { return (pxSize * scaleHeight) / mScreenDensity; } public static voID setVIEwSize(int wIDth,int height,VIEw v) { int paramWIDth = getWIDthSize(wIDth); int paramHeight = getHightSize(height); VIEwGroup.marginLayoutParams params = (VIEwGroup.marginLayoutParams) v .getLayoutParams(); if (wIDth != INVALID) { params.wIDth = paramWIDth; } if (height != INVALID) { params.height = paramHeight; } v.setLayoutParams(params); } public static voID setVIEwpadding(int left,int top,int right,int bottom,VIEw v) { left = getWIDthSize(left); top = getHightSize(top); right = getWIDthSize(right); bottom = getWIDthSize(bottom); v.setpadding(left,top,right,bottom); } public static voID setVIEwmargin(int left,VIEw v) { int paramleft = getWIDthSize(left); int paramtop = getHightSize(top); int paramRight = getWIDthSize(right); int paramBottom = getHightSize(bottom); VIEwGroup.marginLayoutParams params = (VIEwGroup.marginLayoutParams) v .getLayoutParams(); if (left != INVALID) { params.leftmargin = paramleft; } if (right != INVALID) { params.rightmargin = paramRight; } if (top != INVALID) { params.topmargin = paramtop; } if (bottom != INVALID) { params.bottommargin = paramBottom; } v.setLayoutParams(params);}
(5)这里是设置尺寸的代码:
setVIEwSize(100,100,mVIEw); setVIEwmargin(20,20,mVIEw); setVIEwpadding(10,10,mVIEw); mTextVIEw.setTextSize(getTextSize(30));
由上在设计效果图时,可对图内元素进行尺寸标注,程序即可实现按比例缩放。
以上就是AndroID 图片显示与屏幕适配的问题的万能解决办法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
总结以上是内存溢出为你收集整理的Android 图片显示与屏幕适配的问题全部内容,希望文章能够帮你解决Android 图片显示与屏幕适配的问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)