首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:如何计算dp?

Android:如何计算dp?
EN

Stack Overflow用户
提问于 2013-07-10 02:52:38
回答 2查看 3.9K关注 0票数 2

我知道关于这个问题有N个线程,但我仍然不知道如何在Android上应用窗口小部件(按钮,图像)的宽度和高度。

我读过这个:http://developer.android.com/guide/practices/screens_support.html和许多其他的线程,但我不理解它。

我应该如何计算一个按钮的dpi?

我需要知道设备的dpi吗?(维基百科列表):http://en.wikipedia.org/wiki/List_of_displays_by_pixel_density

但是还有很多其他的设备有不同的dpi!

我在photoshop中有一个设计(800x480)和一个按钮(290x65)。我已经在我的android项目中新创建的'drawable‘文件夹中保存并导入了图像按钮。在XML (布局)中,我插入了带有导入按钮图像的ImageView。

代码语言:javascript
复制
<ImageView
   android:id="@+id/btnNewImage"
   android:layout_width="210dp"
   android:layout_height="50dp"
   android:layout_marginLeft="10dp"
   android:layout_marginTop="7dp"
   android:src="@drawable/new_image" />

插入的图像完全不同,它要大得多。我应该如何计算Android大小的确切宽度和高度值?

EN

回答 2

Stack Overflow用户

发布于 2013-07-10 03:02:06

如果您需要知道设备的dpi,请使用以下代码片段:

代码语言:javascript
复制
 int dpi = getResources().getDisplayMetrics().densityDpi;

如果您想要从dp转换为像素:

代码语言:javascript
复制
 int px = (int)(dp * getResources().getDisplayMetrics().density + 0.5f);

如果您想要从像素转换为dp:

代码语言:javascript
复制
 int dp = (int)(px / getResources().getDisplayMetrics().density + 0.5f);
票数 2
EN

Stack Overflow用户

发布于 2013-07-10 03:29:35

为了让你的图像显示为合适的大小,你需要把它放在正确的“可绘制”文件夹中。例如,如果你有一个48x48像素的图标,它应该是drawable-mdpi。理想情况下,你应该为每个文件夹创建图形,这样Android就可以根据屏幕尺寸和分辨率选择最好的文件夹。

我对我的图标使用了以下指导原则(我是从现在被遗忘的地方收集的);你可以根据这些指导原则推断出你需要的像素大小:

代码语言:javascript
复制
Recommended drawable sizes - to match size of launcher icon, about 3/8"
36x36 - low
48x48 - med
72x72 - high
96x96 - extra high
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17555976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档