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。

<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 尺寸的确切宽度和高度值?

4

2 回答 2

2

如果您需要了解设备的 dpi,请使用以下代码段:

 int dpi = getResources().getDisplayMetrics().densityDpi;

如果要从 dp 转换为像素:

 int px = (int)(dp * getResources().getDisplayMetrics().density + 0.5f);

如果要从像素转换为 dp:

 int dp = (int)(px / getResources().getDisplayMetrics().density + 0.5f);
于 2013-07-09T19:02:05.980 回答
1

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

我正在为我的图标使用以下指南(我从现在被遗忘的某个地方收集到);您可以推断这些以找出您需要的像素尺寸:

Recommended drawable sizes - to match size of launcher icon, about 3/8"
36x36 - low
48x48 - med
72x72 - high
96x96 - extra high
于 2013-07-09T19:29:35.307 回答