Android 图片显示与屏幕适配的问题

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 图片显示与屏幕适配的问题的万能解决办法,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-09-02 06:30:32

Android 图片显示与屏幕适配的问题的相关文章

Android的分辨率和屏幕适配详解_Android

一.为什么Android要进行分辨率与屏幕适配 最大的原因是碎片化,因为Android的开源措施和各个厂商的自己细微修改,结果就变成了这个样 需要适配的屏幕尺寸就有这么多: 这怎么可能嘛T_T. 所以我们就只照顾大部分人,根据友盟的统计数据如下: 所以只需要适配: 800x480.854x480.960x540.1184x720.1280x720.1920x1080这六种分辨率. 二.基本知识 屏幕尺寸 英寸,1英寸=2.54厘米.比如常见的屏幕尺寸有2.4.2.8.3.5.3.7.4.2.5.

Android的分辨率和屏幕适配详解

一.为什么Android要进行分辨率与屏幕适配 最大的原因是碎片化,因为Android的开源措施和各个厂商的自己细微修改,结果就变成了这个样 需要适配的屏幕尺寸就有这么多: 这怎么可能嘛T_T. 所以我们就只照顾大部分人,根据友盟的统计数据如下: 所以只需要适配: 800x480.854x480.960x540.1184x720.1280x720.1920x1080这六种分辨率. 二.基本知识 屏幕尺寸 英寸,1英寸=2.54厘米.比如常见的屏幕尺寸有2.4.2.8.3.5.3.7.4.2.5.

android 图片显示问题

问题描述 android 图片显示问题 我锁定了activity的横屏显示,但是我在这个activity中有拍照的功能,当我横屏拍照的时候,这张图片会自动竖屏显示,我希望它怎么拍的就怎么显示, 哪位大神可以帮我解答一下呀 解决方案 android图片显示的方向问题Android创建图片图库不显示问题关于android gridview不显示图片,文字等问题 解决方案二: 难道你横屏拍下的照片竖屏显示时视角跟横屏拍照时的视角不一样? 拍完把图片旋转下呢

涨姿势了,原来Android屏幕适配还可以这么玩

为什么要屏幕适配? 碎片化 品牌机型碎片化 屏幕尺寸碎片化 操作系统碎片化 为了保证用户获得一致的用户体验效果,使得某一元素在Android不同尺寸.不同分辨率的手机上具备相同的显示效果,则需要我们进行屏幕适配. 基础概念 屏幕尺寸 屏幕尺寸是指屏幕对角线的长度,单位是英寸,1 inch=2.54 cm 屏幕分辨率 手机在横向和纵向上的像素点数总和,单位是像素(pixel),1px = 1像素点,举个栗子,1080x1920,即宽度方向上有1080个像素点,在高度方向上有1920个像素点. 屏幕

Android开发之Ruby实现Android自动化屏幕适配

背景:我相信对于Android开发者来说,屏幕适配一直是你心中的痛-,为了让Android开发者从屏幕适配的痛苦中解脱出来,我决定实现这个Android自动化屏幕适配的1.0版本.下面来讲一下思路. 首先以values-w360作为标准也就是360dp,对应的设备就是720×1080俗称的720P的屏幕,也就是说设计师给的设计稿是以720P的屏幕作为设计图的,那么如果设计图上面的尺寸是100px,那么我们就需要用100/2 = 50dp得到我们的这个标准值,以此类推,将app中所有需要适配的尺寸

图片-Android屏幕适配问题,菜鸟求助

问题描述 Android屏幕适配问题,菜鸟求助 如题, 本人菜鸟不知道怎么屏幕适配呀, 我用的是demin建立了两个文件, 一个是(1280x720的),另外一个是1920x1080的. 在里面写的尺寸.因为我们美工给我的图片都是px的. 换算如下 解决方案 做android开发,开源嘛,满市场都是凌乱的机型,总少不了适配这样或那样的型号.在这里分享一下自己在开发中用到的方法. 首先要介绍一下drawable-mdpi.drawable-hdpi-1280x800.drawable-hdpi.这

利用onMeasure测量来实现图片拉伸永不变形,解决屏幕适配问题

上一篇文章详细讲解了一下onMeasure/measure方法在Android自定义控件时的原理和作用,参看博文:Android自定义控件系列七:详解onMeasure()方法中如何测量一个控件尺寸(一),今天就来真正实践一下,让这两个方法大显神威来帮我们搞定图片的屏幕适配问题. 请尊重原创劳动成果,转载请注明出处:http://blog.csdn.net/cyp331203/article/details/45038329,非允许请勿用于商业或盈利用途,违者必究. 使用ImageView会遇到

Android多屏幕适配

  问题: 测试时,发现应用在不同的显示器上显示效果不同(部分文本不能显示完全),自然想到屏幕适配的问题. 按照思路整理如下: (一) 几个概念 1, Screen size 屏幕的尺寸,即对角线长度(单位inch-英寸) 2, Screen density屏幕密度,即单位长度像素点数(pots/inches) 3, Resolution 分辨率,即屏幕的总像素点数(width * height) 4, Density-independent pixel (dp)独立像素密度.标准是160dip

Android实战技术: 用Dimension解决多屏幕适配的问题

开闭原则--可变与不变的分离,且容易定制 应用程序的目的是尽可能做到适用于多种设备,这些设备的配置不尽相同,有些不同的物理尺寸,分辨率.为了达到最佳的适配效果,和最少的代码重复,以及最好的可扩展性,就需要分离资源的使用和资源.用一个统一的资源管理者来管理资源.代码通过资源管理者提供的统一的接口来获取资源.这样对于使用者来讲资源的获取的方式是统一,资源者无需关心如何为不同的设备获取不同的资源.这样就把随不同设备变化而变化的代码降到最低,只有资源管理者需要操心不同的设备相关的不同的资源. 比如:字串