转自:http://blog.csdn.net/yihui823/article/details/6735750
实验二
我们再回顾一下实验一的结论:
相同的dip,在不同分辨率的屏幕上,在屏幕的相对宽度是一样的。所谓相对宽度,可以理解为是控件占有屏幕的百分比。
desity :160 = px : dip
但是,我们仔细盘算一下这个公式,变换一下:
desity / 160 =px / dip => desity / px = 160 / dip
我们应该把之前的结论再加上一个条件,相同的desity和屏幕高度比。
我们再用实验来说明这个问题。
对比4
我们还是用之前的程序,在不同的虚拟机上看效果。对比1的时候,我们用的两个虚拟机:
虚拟机1:desity=120;height=320;比例:0.375
虚拟机2:desity=160:height=480;比例:0.333
可以看出,这两个比值是不同的,只是差别不大,所以可能我们肉眼看不出来。
我们把这个差别变大。建立一个和虚拟机1一样尺寸的虚拟机,但是desity不同。
虚拟机1:
pix-003
显示的效果如下:
pix-004
虚拟机5:
pix-011
是不是启动后发现屏幕小了很多,那是因为密度高了哦。
显示的效果:
pix-012
和之前的公式是一样的,在desity=160的时候,dpi和px是1:1的关系。现在按钮已经全屏显示了。
所以说,印证了我们之前从公式推出来的结论:
要想dpi显示的控件是与屏幕保持相对不变,那么屏幕分辨率改变的时候,屏幕的密度也必须同比例改变。
这是个很有趣的结论。也就是说,屏幕密度不变的时候,屏幕分辨率改变了,用dpi定位的控件还是会改变相对大小和位置。
那么就是说,在屏幕分辨率变大的时候,必须保持屏幕密度也变大,才能让dpi定位的控件保持相对不变。
我们把之前的结论修正一下:
相同的dip,在不同分辨率的屏幕上,如果分辨率与密度比例相同,那么在屏幕的相对长度是一样的。
desity :160 = px : dip
如果,desity = inch/px, 那么 desity / px = inch / (px*px)
也就是说,屏幕尺寸大增大到4倍,像素不需要增大到4倍,只需要增大到2倍就行了。想想看,的确是这样,因为屏幕密度增加了啊。
相关推荐
本文将深入探讨Android像素转换,包括dp转px以及px转dp的方法,并提供相关的实践示例。 一、Android屏幕密度 Android设备屏幕的分辨率和物理尺寸各异,为了确保应用界面在不同设备上呈现一致的效果,引入了密度...
理解并正确使用`dp`单位以及像素与`dp`之间的转换,对于创建适应各种屏幕尺寸和密度的Android应用至关重要。通过这个工具类,开发者可以方便地在代码中进行这些转换,确保UI元素在不同设备上看起来大小一致。因此,...
然而,Android原生支持的是XML格式的VectorDrawable,所以当我们手头有一个SVG文件时,需要将其转换为Android可使用的VectorDrawable格式。 本教程将指导你如何将SVG转换为Android可用的VectorDrawable资源。 首先...
4. **源码提供**:除了apk安装包,此App还提供源代码,开发者可以学习和研究如何实现这两种色彩空间的转换,也可以根据需要进行二次开发。 5. **音视频关联**:虽然主要关注色彩转换,但因为YUV常用于音视频处理,...
Android开发之dp转像素,像素转换为dp工具类,详细代码,带有源文件下载地址。
在Android中使用OpenGL进行3D渲染时,需要将屏幕坐标或像素坐标转换为此坐标系。 5. **地理坐标系**:在地图应用中,我们通常需要处理GPS坐标(WGS84)和其他地理坐标系统。这些坐标系与Android的屏幕坐标系完全...
在Android开发中,图片处理是一项常见的任务,包括但不限于图片格式转换、尺寸调整、滤镜应用等。本篇文章将深入探讨Android图片转换器的代码实现,旨在帮助开发者更好地理解和运用相关技术。 首先,Android图片...
本篇文章将深入探讨如何在Android中进行Bitmap与String之间的转换,以及这些转换在实际应用中的场景。 首先,我们要理解Bitmap与String转换的原理。Bitmap是Android系统中用来表示图像的类,它包含了图像的所有像素...
本篇将详细介绍这三个概念及其相互转换。 首先,像素(px)是显示器上最小的可寻址单元,每个像素有自己的颜色和亮度。在物理屏幕上,像素是固定的,但不同的设备可能具有不同的像素密度。例如,一个高清屏幕(HD)...
"Android Px, DP转换工具"是为了帮助开发者更方便地处理这种单位转换问题而设计的。在这个工具中,你可以选择不同的dpi(dots per inch,每英寸像素数)等级,包括ldpi(低密度)、mdpi(中密度)、hdpi(高密度)、...
在Android开发过程中,由于屏幕尺寸和分辨率的多样性,开发者经常需要在不同的显示单位之间进行转换,以确保应用的界面元素在各种设备上显示一致。"AndroidUnits" 是一个专门为此目的设计的工具类,它提供了方便的...
在Android开发中,有时我们需要将普通的矩形图片转换为圆形或者带有圆角的效果,以便适应各种设计需求,比如用户头像、图标等。这个过程通常涉及到图像处理技术,特别是Bitmap对象的操作。`PorterDuffXfermode`是...
此外,Android Studio提供了`convertPixelsToDp()`和`convertDpToPixels()`的辅助方法,可以直接在布局XML文件中进行像素单位与密度无关像素单位之间的转换。但这些方法仅适用于XML中的值,不适合在代码中动态计算。...
在Android开发中,理解并掌握dp、px、sp等单位之间的转换是非常重要的,因为它们直接影响到界面元素在不同分辨率和像素密度设备上的显示效果。dp(density-independent pixels)是独立像素,px(pixels)是像素,sp...
本工具"android布局dpi批量转换工具"正是为了解决这一问题,它能够帮助开发者快速、批量地将布局文件转换为适应不同DPI的版本,提高开发效率。 DPI(Dots Per Inch)是每英寸像素点的数量,是衡量屏幕密度的一个...
对于复杂的图片效果,可以借助第三方库,如Android-Image-Cropper或Android-Photo-Editor。 5. **格式转换**:如果项目包含图片格式转换(例如从JPEG到PNG),则需要了解不同图片格式的特性。Android提供了`Bitmap....
本篇将详细介绍如何在Android中进行Drawable到Bitmap以及Bitmap到Drawable的转换。 首先,Drawable是一个抽象的概念,它代表了Android系统中的可绘制对象,包括Bitmap、Shape、LevelList、NinePatch等。而Bitmap则...
对于一个项目,我需要将图像转换为自身的像素化版本。 但是我找不到可用的android库,所以我决定自己写点东西。 请不要指望它是完美的,但我仍然想将它放在github上,以供可能会遇到与我相同的情况的人使用。 欢迎...
在Android开发中,对图像进行各种形状的转换是常见的需求,比如制作圆角图片、圆形图片甚至是五角星等特殊形状。"glide-transformations"是一个强大的库,它为Glide——一个流行的Android图片加载库——提供了丰富的...
### Android DP和PX之间的转换 在Android开发过程中,经常需要处理不同屏幕尺寸和密度下的UI适配问题。其中,DP(Density-independent Pixel)和PX(Pixel)是两种常见的单位,它们之间的转换对于实现良好的跨设备...