在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]
由上在设计效果图时,可对图内元素进行尺寸标注,程序即可实现按比例缩放。
- 浏览: 747431 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
梦行Monxin商城系统:
java网上商城与php网上商城比较 -
梦行Monxin商城系统:
java网上商城与php网上商城比较 -
任楚娴:
你好,请问html = nvl(html); 这句中的nvl( ...
java html串转换成文本串 -
u013246812:
,谢拉!
jQuery ui Dialog 讲解参数 -
大宝剑99:
...
前端优化
发表评论
-
记录年会小系统
2018-02-04 14:42 1143有点意思,年会过后,抽奖活动saas小系统扒光看看:支持P ... -
proguard 代码混淆
2016-11-22 10:59 692url:http://proguard.sourceforg ... -
家娃---曾经的APP
2016-10-21 10:01 407家娃APP 简介:晒娃娃秀家庭,为娃娃成长护航! 介绍 ... -
端午收粽子啦,家庭社交还能这么玩
2015-06-19 09:05 854<!--StartFragment --> ... -
android string.xml 特殊符号
2014-12-29 19:57 1374常见的ASCII十进制交换编码:@ 对应 - ... -
android 调用系统 录像,录音等
2014-10-21 20:25 20331、调用系统拍照[mw_shl_code=java,true] ... -
转:解决模拟器安装 timeout的问题
2014-10-15 17:20 473Failed to install on devi ... -
给文章增加微信公号关注链接
2014-09-19 10:19 1281测试了一下: 方法1:【已失效】 <a hre ... -
切内内小应用
2014-09-15 14:41 791中午从网上看到你个android 切的源码,对其进行了改造 ... -
什么是互联网思维
2014-08-12 09:42 739什么是互联网思维?? 不同人以及从事这不同的行业会有 ... -
绿色2048
2014-05-11 17:52 962绿色2048 最近2048小游戏非常火。 做 ... -
百变周边秀
2014-04-07 16:22 536百变周边秀 http://mojianpo.host ... -
基于周边找IT精英
2014-03-13 11:28 746最近在整理“垂直app社交”的需求,针对周边定位服务,做了 ... -
android 组件属性描述
2014-03-12 14:31 2692属性名称 描述 androi ... -
春节前最后一个:马上群飞
2014-01-27 18:02 819整理网上的资源,进行加工而成。 其实这是一个很久以 ... -
2014春节铃声王
2014-01-20 13:46 955春节快来到,大街小巷真热闹,穿新衣,戴新帽,手机铃声凑 ... -
2014春节短信王
2014-01-20 08:26 793史上最全的2014马年春节拜年短信王为您集合各式春节拜年短 ... -
去掉Activity title bar 方法
2013-11-20 08:21 726第一个方法是在代码去掉title bar 在Activit ... -
发泄神器
2013-10-26 15:24 1102发泄神器 android版 一款娱乐发泄应用小软件, ... -
韩国小姐选美连连看----android版
2013-06-30 17:31 1117韩国小姐连连看,是一款益智休闲游戏,这款游戏与其它连 ...
相关推荐
"Android Big Image showing" 是一个专门针对这一问题的应用示例,它展示了如何优雅地处理超大图片的显示,包括拖动、多点触控缩放以及自动适应屏幕宽度的功能。在这个项目中,我们将深入探讨涉及的关键知识点。 1....
本文将详细介绍如何在Android的TextView中显示图片和图像。 首先,我们要理解Android系统提供的一些基本资源类型,包括Drawable资源,这是用来表示图像的主要方式。在Android工程中,图片通常存储在res/drawable...
在Android平台上,显示Camera图像是一项常见的任务,尤其在开发摄影、社交或自拍类应用时。这个主题主要涉及Android的Camera API以及如何将捕获的图像实时显示在用户界面上。下面将详细讲解这一过程中的关键知识点。...
总之,Android图片显示位置的处理涉及到`ImageView`的使用、布局设计、触摸事件处理、动画实现等多个方面。开发者需要熟练掌握这些技术,以实现丰富多样的图片展示和文字叠加效果。在实际项目中,根据具体需求选择...
在Android开发中,显示图像是一项基础且常见的任务。ImageView组件是Android SDK中用于展示静态图像的关键控件。本文将深入探讨如何使用ImageView来显示图片,并介绍如何通过按钮控制图片的切换,实现简单的图片浏览...
这里可以使用类似于之前自定义Dialog的方法,但需要调整布局以适应全屏显示,并且可能需要添加滑动手势来实现图片的左右滑动切换。如果使用新的Activity,可以传递图片URL到新Activity,然后在新Activity中加载图片...
在Android平台上,显示SD卡上的图片是一项常见的任务,尤其对于那些需要处理图像的应用来说更是必不可少。这个场景通常涉及到几个关键的技术点,包括读取SD卡上的文件、解析图片数据以及在屏幕上显示。以下是对这些...
总的来说,`Android-FlexibleRichTextView`是一个强大的工具,它极大地扩展了Android TextView的功能,使得开发者能够更方便地处理富文本,特别是在涉及LaTeX、图片和代码显示的情况下。通过自定义标签,开发者可以...
瀑布流图片显示是Android开发中常见的一种布局方式,主要用于展示大量图片,如新闻、商品或者社交媒体的feed。这种布局的特点是图片逐个流式排列,每一行的图片数量不固定,形成一种类似瀑布倾泻的效果。下面将详细...
在Android开发中,实现“多张图片展示”的功能是一个常见的需求,尤其在社交应用中,如微信的朋友圈功能。这个功能允许用户通过多种途径选择图片,例如从相册选取多张图片或者直接拍照,之后还能提供删除选项。下面...
在Android平台上,开发图片和声音显示功能是移动应用开发中不可或缺的部分。Android系统提供了丰富的API和工具,使得开发者能够轻松地处理图像和音频资源。以下将详细解释Android中与图片和声音相关的知识点。 1. *...
在Android开发中,全屏显示手机指定路径图片是一项常见的需求,尤其在制作画廊或查看大图的应用场景中。本文将详细讲解如何实现这一功能,主要涉及`ImageView`组件、图片加载策略以及优化图片显示。 首先,我们需要...
在Android开发中,个性图片的错位显示是一个常见的视觉效果问题,这可能涉及到多个技术点。首先,我们从“精美图片错位显示浏览源码”这个描述出发,可以推测问题可能出在图片加载、布局渲染或者动画效果上。下面将...
在Android应用开发中,"Android九宫格显示多图或item仿照QQ空间图片列表"是一种常见的用户界面设计,主要用于展示一系列的图片或者图标,让用户能够快速浏览和选择。这个功能在社交应用、新闻阅读应用以及各种内容...
在Android开发中,显示网络图片是一项常见的任务,无论是制作应用的界面还是构建用户交互的界面,都需要用到这个功能。本篇文章将详细讲解如何在Android应用程序中加载并显示网络上的图片,以实现“android 显示网络...
1. **ImageView**: 在Android UI设计中,`ImageView`是用于显示图像的控件,它是处理图片的基础。在这个Demo中,缩略图和大图通常都是通过`ImageView`来展示的。你可以使用`setImageResource()`、`setImageBitmap()`...
在这个场景中,我们主要探讨如何在Android平台上实现一个使用异步加载方式来显示图片的瀑布流程序。 首先,我们需要理解瀑布流的核心原理。瀑布流的关键在于动态调整每个单元格的高度,以适应不同比例的图片。通常...
对于大图,可以使用内存缓存和磁盘缓存来减少加载时间,并使用LruCache或者 Fresco、 Glide 等图片加载库来管理内存,避免因加载大量图片导致的内存溢出问题。 最后,我们来看一下压缩包中的"ImageMagnify"文件,这...
- 对于图片,可以调用`getImages()`方法,然后将图片保存到本地并生成对应URI,以便在Android UI中显示。 4. **显示Word内容**: - 文本内容可以显示在`TextView`或其他文本控件中,但可能需要进行格式转换和换行...
本文将深入讲解如何在Android的Dialog中生成并显示二维码,以及如何处理点击Dialog外部以关闭Dialog的事件。 首先,我们需要了解二维码生成的基本原理。二维码(Quick Response Code)是一种二维条形码,能够存储比...