转换dp单位为像素单位

原创 2015年07月07日 11:33:18

在某些情况下,需要用dp来表示尺寸,然后把他们转换为像素。想象一下,在应用程序中滚动或者扔的手势在用户的手指划过至少16像素后才能被识别出。在基准屏幕上,在手势被识别出来之前,用户必须划过16像素除160dpi,这等于十分之一英寸(或者2.5毫米)。在一个高密度屏幕(240dpi)设备上,用户必须划过16像素除240dpi,即十五分之一英寸(或者1.7毫米)。这个距离相当短,因此对用户来说,程序看上去更加敏感。

要解决这个问题,手势阈值必须用dp表示,然后转换成实际的像素。例如:

 
// The gesture threshold expressed in dp
private static final float GESTURE_THRESHOLD_DP = 16.0f;
 
// Get the screen's density scale
final float scale = getResources().getDisplayMetrics().density;
// Convert the dps to pixels, based on density scale
mGestureThreshold = (int) (GESTURE_THRESHOLD_DP * scale + 0.5f);
 
// Use mGestureThreshold as a distance in pixels...
 

根据当前屏幕密度,DisplayMetrics.density指定了你必须使用的将dp单位转为像素单位的比例因子。在一个中等密度屏幕上,DisplayMetrics.density等于1.0;在高密度屏幕上,DisplayMetrics.density等于1.5;在一个超高密度屏幕上,DisplayMetrics.density等于2.0;在低密度屏幕上,DisplayMetrics.density等于0.75.这个比例因子乘以dp单位得到的值就是当前屏幕的实际像素值(然后添加0.5f做四舍五入,转化的整数)。更多信息,请参看DisplayMetrics类。

然而,不是为这里事件定义任意阈值,而是你应该使用预先调整的可从ViewConfiguration获取的配置值。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android根据分辨率进行单位转换-(dp,sp转像素px)

Android系统中,默认的单位是像素(px)。也就是说,在没有明确说明的情况下,所有的大小设置都是以像素为单位。 如果以像素设置大小,会导致不同分辨率下出现不同的效果。那么,如何将应用中所有大...

android中像素单位dp、px、pt、sp转换

android中像素单位有dp、px、pt、sp,每一种都代表不同的尺寸,先说一下每一种尺寸单位的含义。 dp(dip): device independent pixels(设备独立像素). 不同...

Android像素单位dp、sp、px、pt的区别和比较

目录结构目录结构 前言 度量单位含义 换算规则前言在分辨率没有牛逼到爆的过去,程序员通常以像素为单位设计计算机用户界面。例如,图片大小为80×32像素。这样处理的问题在于,如果在一个每英寸像素点数更高...

像素单位px、dp、sp的区别与理解

px:即像素,1px代表屏幕上一个物理的像素点; 不同屏幕比例:相对布局 不同屏幕尺寸:fragment 不同解析度:分解析度使用图片 dp(dip):用于视图 sp:用于字体 ...

android中像素单位dp、px、pt、sp的比较

最近了解了一下android 的分辨率的问题,搜了一些资料,mark一下. dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这...

Android中度量单位px、dip、dp、sp、pt的区别 像素及屏幕密度决定显示效果的美观

1、概述      过去,程序员通常以像素为单位设计计算机用户界面。例如:图片大小为80×32像素。这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。...

android中像素单位dp、px、pt、sp的比较

dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖...

Android中的像素单位px、dp、sp的区别

使用规律,务必牢记:文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位,代码才用px。...

Android中像素单位dp、px、pt、sp的比较

dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖...

android中像素单位dp、px、pt、sp的比较

dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:转换dp单位为像素单位
举报原因:
原因补充:

(最多只允许输入30个字)