我知道有关于这个问题的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尺寸的确切宽度和高度值?
答案 0 :(得分:1)
如果您需要知道设备的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);
答案 1 :(得分: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