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