Android 图片显示与屏幕适配的问题
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, int top, int right, int bottom, 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, 0, 0, 20, mView); setViewPadding(10, 10, 10, 10, mView); mTextView.setTextSize(getTextSize(30));
由上在设计效果图时,可对图内元素进行尺寸标注,程序即可实现按比例缩放。
以上就是Android 图片显示与屏幕适配的问题的万能解决办法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
Kotlin Extension Function扩展函数详细介绍
Kotlin支持使用新功能扩展类的能力,而无需通过类实现继承概念或使用设计模式,如装饰器(Decorator)。这是通过称为扩展功能(Extension Function)的特殊方式来完成的。因此,此功能可以有效地使代码变得更清晰和易于阅读,并且还可以减少代码2023-02-02Android Activity中使用Intent实现页面跳转与参数传递的方法
这篇文章主要介绍了Android Activity中使用Intent实现页面跳转与参数传递的方法,结合实例形式简单分析了Android中的Activity交互操作相关技巧,需要的朋友可以参考下2016-07-07Android程序开发之使用Design包实现QQ动画侧滑效果和滑动菜单导航
这篇文章主要介绍了Android程序开发之使用Design包实现QQ动画侧滑效果和滑动菜单导航的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下2016-07-07Android用PopupWindow实现自定义overflow
这篇文章主要介绍了Android用PopupWindow实现自定义overflow的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-11-11
最新评论