在Android开发中比较头疼的是Android的分辨率问题,那么这里给大家介绍个万能办法,这个办法的优点是可以实现万能适应,给开发和美工设计提供了依据,但是对开发来说代码量也不少,具体办法:
(1)获取屏幕的尺寸
[mw_shl_code=java,true]
WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display d = windowManager.getDefaultDisplay();
mWidth = d.getWidth();mHeight = d.getHeight();
DisplayMetrics dm = getResources().getDisplayMetrics()
mScreenDensity = dm.density;
[/mw_shl_code]
(2)美工设计图的尺寸
uiWidth,uiHeight
(3)获取缩放比例
[mw_shl_code=java,true]
float scaleWidth = mWidth / uiWidth;
float scaleHeight = mHeight/ uiHeight;
[/mw_shl_code]
(4)所有布局的尺寸用代码实现:
[mw_shl_code=java,true]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);}[/mw_shl_code]
(5)这里是设置尺寸的代码:
[mw_shl_code=java,true] setViewSize(100, 100, mView);
setViewMargin(20, 0, 0, 20, mView);
setViewPadding(10, 10, 10, 10, mView);
mTextView.setTextSize(getTextSize(30)); [/mw_shl_code]
由上在设计效果图时,可对图内元素进行尺寸标注,程序即可实现按比例缩放。
- 浏览: 735568 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
梦行Monxin商城系统:
java网上商城与php网上商城比较 -
梦行Monxin商城系统:
java网上商城与php网上商城比较 -
任楚娴:
你好,请问html = nvl(html); 这句中的nvl( ...
java html串转换成文本串 -
u013246812:
,谢拉!
jQuery ui Dialog 讲解参数 -
大宝剑99:
...
前端优化
发表评论
-
记录年会小系统
2018-02-04 14:42 1126有点意思,年会过后,抽奖活动saas小系统扒光看看:支持P ... -
proguard 代码混淆
2016-11-22 10:59 669url:http://proguard.sourceforg ... -
家娃---曾经的APP
2016-10-21 10:01 384家娃APP 简介:晒娃娃秀家庭,为娃娃成长护航! 介绍 ... -
端午收粽子啦,家庭社交还能这么玩
2015-06-19 09:05 839<!--StartFragment --> ... -
android string.xml 特殊符号
2014-12-29 19:57 1285常见的ASCII十进制交换编码:@ 对应 - ... -
android 调用系统 录像,录音等
2014-10-21 20:25 19741、调用系统拍照[mw_shl_code=java,true] ... -
转:解决模拟器安装 timeout的问题
2014-10-15 17:20 454Failed to install on devi ... -
给文章增加微信公号关注链接
2014-09-19 10:19 1249测试了一下: 方法1:【已失效】 <a hre ... -
切内内小应用
2014-09-15 14:41 745中午从网上看到你个android 切的源码,对其进行了改造 ... -
什么是互联网思维
2014-08-12 09:42 713什么是互联网思维?? 不同人以及从事这不同的行业会有 ... -
绿色2048
2014-05-11 17:52 932绿色2048 最近2048小游戏非常火。 做 ... -
百变周边秀
2014-04-07 16:22 492百变周边秀 http://mojianpo.host ... -
基于周边找IT精英
2014-03-13 11:28 717最近在整理“垂直app社交”的需求,针对周边定位服务,做了 ... -
android 组件属性描述
2014-03-12 14:31 2666属性名称 描述 androi ... -
春节前最后一个:马上群飞
2014-01-27 18:02 791整理网上的资源,进行加工而成。 其实这是一个很久以 ... -
2014春节铃声王
2014-01-20 13:46 928春节快来到,大街小巷真热闹,穿新衣,戴新帽,手机铃声凑 ... -
2014春节短信王
2014-01-20 08:26 756史上最全的2014马年春节拜年短信王为您集合各式春节拜年短 ... -
去掉Activity title bar 方法
2013-11-20 08:21 697第一个方法是在代码去掉title bar 在Activit ... -
发泄神器
2013-10-26 15:24 1068发泄神器 android版 一款娱乐发泄应用小软件, ... -
韩国小姐选美连连看----android版
2013-06-30 17:31 1093韩国小姐连连看,是一款益智休闲游戏,这款游戏与其它连 ...
相关推荐
主要介绍了Android 图片显示与屏幕适配的问题的相关资料,Android的分辨率问题是每个Android 开发者头疼的问题,那么这里给大家介绍个万能办法,需要的朋友可以参考下
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
在处理多分辨率问题时,Android 平台提供了多种方法,例如图片缩放和自动定义像素尺寸和位置等。但是,这些方法也存在一些缺点,例如图片缩放可能会导致图片显示不清晰,自动定义像素尺寸和位置可能会导致元素不能...
与DrawingView-Android相比较,这个版本的控件大小可以适应图片大小和尺寸,去除了“橡皮擦”功能,增加“撤销功能”,解决了在图像上涂鸦路径不能保存的问题。 具体实现 控件适应图片 因为这个我们需要这个控件居中...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
**Android Gallery:从SD卡获取图片并展示.rar文件** 本项目为一款基于Android平台的Gallery应用,用户可从SD...通过本项目,开发者可快速构建具备图片检索与预览功能的Android应用,并可灵活扩展以适应不同场景需求。
◆ 讨论了如何适应不同的显示方向、如何理解屏幕的组件 以及如何处理用户界面通知 ◆ 描述了在使用TextView、ProgressBar、AutoComplete- TextView、TimePicker、ListView等视图设计用户界面时 涉及的元素 ◆ ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
Android GDI 基本框架是 Android 中最复杂的代码之一,涉及到显示缓冲区的操作和管理。GDI 主要管理图形图像的输出,从整体方向上来看,GDI 可以被认为是一个物理屏幕使用的管理器。 GDI 的主要工作是将文本、线条...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...
4. 响应式设计:Android 应用程序可以根据设备类型、屏幕尺寸等因素调整布局和显示方式,以适应不同的设备和用户需求。 5. 多媒体支持:Android 支持常见的音频、视频、图像等多媒体格式,可以实现各种多媒体应用。 ...