Android 图片显示与屏幕适配的问题
发布时间 - 2026-01-11 02:42:52 点击率:次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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何使用Livewire构建动态组件?(入门代码)
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
济南网站建设制作公司,室内设计网站一般都有哪些功能?
如何用西部建站助手快速创建专业网站?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
详解Oracle修改字段类型方法总结
大同网页,大同瑞慈医院官网?
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
android nfc常用标签读取总结
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
node.js报错:Cannot find module 'ejs'的解决办法
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
如何在Tomcat中配置并部署网站项目?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
太平洋网站制作公司,网络用语太平洋是什么意思?
JS弹性运动实现方法分析
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
如何在建站主机中优化服务器配置?
JS去除重复并统计数量的实现方法
UC浏览器如何设置启动页 UC浏览器启动页设置方法
Laravel如何自定义分页视图?(Pagination示例)
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
JavaScript如何实现音频处理_Web Audio API如何工作?
专业商城网站制作公司有哪些,pi商城官网是哪个?
南京网站制作费用,南京远驱官方网站?
如何登录建站主机?访问步骤全解析
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
lovemo网页版地址 lovemo官网手机登录
Laravel怎么集成Vue.js_Laravel Mix配置Vue开发环境
打造顶配客厅影院,这份100寸电视推荐名单请查收
详解CentOS6.5 安装 MySQL5.1.71的方法
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
如何快速搭建FTP站点实现文件共享?
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
C++时间戳转换成日期时间的步骤和示例代码
制作公司内部网站有哪些,内网如何建网站?
黑客如何通过漏洞一步步攻陷网站服务器?
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
BootStrap整体框架之基础布局组件

