この回答は少し複雑ですので、私に同行してください。
あなたは
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をコンテンツにラップすることができます。 android.com/guide/practices/screens_support.html –
それがそうでない場合は、電話機とタブレットの値が1になるカスタムディメンションをdimen.xmlファイルに作成できます。 (たとえば、ほとんどの場所で使用されるデフォルトのマージンは、小型デバイスの場合は16dp、それ以上のサイズのデバイスの場合は64dpです)。その動作をコピーすることができます。 – Vucko