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 】
相关推荐:
JavaScript如何实现错误处理_try...catch如何捕获异常?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel如何实现API版本控制_Laravel版本化API设计方案
Laravel如何使用Vite进行前端资源打包?(配置示例)
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
深入理解Android中的xmlns:tools属性
网站建设保证美观性,需要考虑的几点问题!
如何快速登录WAP自助建站平台?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Python自动化办公教程_ExcelWordPDF批量处理案例
JS经典正则表达式笔试题汇总
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
如何用搬瓦工VPS快速搭建个人网站?
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
iOS中将个别页面强制横屏其他页面竖屏
JavaScript如何实现类型判断_typeof和instanceof有什么区别
EditPlus中的正则表达式 实战(1)
html5的keygen标签为什么废弃_替代方案说明【解答】
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
如何快速建站并高效导出源代码?
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
如何在建站主机中优化服务器配置?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
用v-html解决Vue.js渲染中html标签不被解析的问题
Laravel怎么连接多个数据库_Laravel多数据库连接配置
如何在云虚拟主机上快速搭建个人网站?
Laravel如何使用Collections进行数据处理?(实用方法示例)
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
如何快速查询域名建站关键信息?
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
原生JS实现图片轮播切换效果
如何用好域名打造高点击率的自主建站?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
佛山企业网站制作公司有哪些,沟通100网上服务官网?
Laravel用户密码怎么加密_Laravel Hash门面使用教程
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
如何快速搭建高效服务器建站系统?
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
如何在Windows服务器上快速搭建网站?
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐

