這個答案有點牽扯,所以請耐心等待。
您可以創建一些方法,像這樣..
public static int getScreenDensity(Context context) {
int density = context.getResources().getDisplayMetrics().densityDpi;
switch(density)
{
case DisplayMetrics.DENSITY_LOW:
return DisplayMetrics.DENSITY_LOW;
case DisplayMetrics.DENSITY_MEDIUM:
return DisplayMetrics.DENSITY_MEDIUM;
case DisplayMetrics.DENSITY_HIGH:
return DisplayMetrics.DENSITY_HIGH;
case DisplayMetrics.DENSITY_XHIGH:
return DisplayMetrics.DENSITY_XHIGH;
case DisplayMetrics.DENSITY_XXHIGH:
return DisplayMetrics.DENSITY_XXHIGH;
case DisplayMetrics.DENSITY_XXXHIGH:
return DisplayMetrics.DENSITY_XXXHIGH;
default:
return DisplayMetrics.DENSITY_DEFAULT;
}
}
然後在一個活動,你可以檢測屏幕尺寸和調整按鈕的屬性,像這樣。
private void setTunerPopoverSize(PopoverView popoverView) {
int screenDensity = Util.getScreenDensity(this);
if (screenDensity == DisplayMetrics.DENSITY_HIGH) {
// set button size here if high density
} else if (screenDensity == DisplayMetrics.DENSITY_XHIGH) {
// set button size here if xhigh density
} else {
// set default button size
}
}
我希望這有助於。
http://developer.android.com/guide/topics/resources/more-resources.html#Dimension – CommonsWare
是info_button的圖片嗎?如果它是一個圖像,你可以爲不同的屏幕創建不同的圖像drawable-hdpi,drawable-ldpi,drawable-mdpi,drawable-xhdpi和drawable-xxhdp並使layout_width,layout_height包裝內容支持多個屏幕:http:// developer。 android.com/guide/practices/screens_support.html –
如果不是這樣,您可以在dimen.xml文件中創建自定義維度,其中手機和平板電腦的值分別爲1。 (例如,對於小型設備幾乎無處不在的默認邊距是16dp,對於較大尺寸的設備則是64dp)。您可以複製該行爲。 – Vucko