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 图片显示与屏幕适配的问题的万能解决办法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Android
# 图片显示与屏幕适配
# 屏幕适配的问题解决办法
# Android屏幕适配工具类 Android自动生成不同分辨率的值
# Android中关于屏幕的三个小众知识(宽屏适配、禁止截屏和保持屏幕常亮)
# 简单谈谈我的Android屏幕适配之路
# Android 手机屏幕适配解决办法
# Android的分辨率和屏幕适配详解
# Android-屏幕适配需要注意的地方总结
# Android 简单好用的屏幕适配方案
# 的是
# 如有
# 希望能
# 给大家
# 可以实现
# 谢谢大家
# 解决办法
# 可对
# 由上
# 按比例
# 疑问请
# mScreenDensity
# getDisplayMetrics
# density
# uiWidth
# DisplayMetrics
# getHeight
# getResources
# dm
# uiHeight
相关文章:
Python文件管理规范_工程实践说明【指导】
建站之家VIP精选网站模板与SEO优化教程整合指南
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
相册网站制作软件,图片上的网址怎么复制?
已有域名如何免费搭建网站?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
建站主机是否属于云主机类型?
,南京靠谱的征婚网站?
javascript中的try catch异常捕获机制用法分析
如何在宝塔面板中创建新站点?
定制建站方案优化指南:企业官网开发与建站费用解析
广州美橙建站如何快速搭建多端合一网站?
家庭服务器如何搭建个人网站?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何高效利用200m空间完成建站?
广州营销型建站服务商推荐:技术优势与SEO优化解析
山东网站制作公司有哪些,山东大源集团官网?
建站之星导航菜单设置与功能模块配置全攻略
建站主机选购指南与交易推荐:核心配置解析
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
建站之星伪静态规则如何设置?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
安徽网站建设与外贸建站服务专业定制方案
魔毅自助建站系统:模板定制与SEO优化一键生成指南
PHP 500报错的快速解决方法
如何通过VPS搭建网站快速盈利?
建站之星如何优化SEO以实现高效排名?
网页设计网站制作软件,microsoft office哪个可以创建网页?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
javascript基本数据类型及类型检测常用方法小结
如何选择高性价比服务器搭建个人网站?
如何在IIS中配置站点IP、端口及主机头?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何用PHP快速搭建CMS系统?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
深圳网站制作的公司有哪些,dido官方网站?
定制建站是什么?如何实现个性化需求?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
企业微网站怎么做,公司网站和公众号有什么区别?
零服务器AI建站解决方案:快速部署与云端平台低成本实践
建站之星如何实现PC+手机+微信网站五合一建站?
深圳网站制作培训,深圳哪些招聘网站比较好?
成都网站制作报价公司,成都工业用气开户费用?
临沂网站制作公司有哪些,临沂第四中学官网?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
在线制作视频的网站有哪些,电脑如何制作视频短片?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
南宁网站建设制作定制,南宁网站建设可以定制吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。