如何根据屏幕尺寸更改按钮大小?

时间:2016-05-12 20:24:57

标签: android android-imagebutton

我有一个图像按钮。根据屏幕尺寸改变尺寸的方法是什么?

<Button
    android:id="@+id/infobutton"
    android:layout_width="64dp"
    android:layout_height="64dp"
    android:layout_alignLeft="@+id/button1"
    android:layout_centerVertical="true"
    android:layout_marginLeft="45dp"
    android:background="@drawable/info_button" />

1 个答案:

答案 0 :(得分:-1)

这个答案有点牵强,所以请耐心等待。

您可以创建一些类似的方法..

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
    }
}

我希望这会有所帮助。