Android ImageButton Size不适合较小的屏幕设备

时间:2014-01-28 11:42:59

标签: android imagebutton

我想知道如何设置我的应用程序内容,以便可以在至少3.5英寸设备中修复它们。

在如此小尺寸的设备(4英寸)中看起来像这样。

如该图所示,所有四个图像按钮彼此重叠。 7英寸屏幕看起来不错。
有什么方法可以解决这个问题吗?

enter image description here

这是我的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg2"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".StartActivity" >

    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:background="@null"
        android:layout_marginLeft="24dp"
        android:src="@drawable/abc" />

    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:background="@null"
        android:layout_marginRight="24dp"
        android:src="@drawable/nmbrs" />

    <ImageButton
        android:id="@+id/imageButton3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:background="@null"
        android:layout_marginLeft="24dp"
        android:layout_marginBottom="10dp"
        android:src="@drawable/vegebtns" />

    <ImageButton
        android:id="@+id/imageButton4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:background="@null"
        android:layout_marginRight="24dp"
        android:layout_marginBottom="10dp"
        android:src="@drawable/fruitsbtn" />

</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

  1. 为每种类型的屏幕创建值文件夹。
  2. 在每个文件夹中创建dimens.xml文件
  3. 在每个具有相同名称的文件夹中为按钮宽度和高度创建尺寸值
  4. 更改android:layout_width="@dimens/name"
  5. 更好地引用http://developer.android.com/guide/practices/screens_support.html

答案 1 :(得分:0)

使用如下所示的每个图像按钮

    <ImageButton
    android:id="@+id/imageButton4"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:background="@null"
    android:layout_marginRight="24dp"
    android:layout_marginBottom="10dp"
    android:src="@drawable/fruitsbtn" />

答案 2 :(得分:0)

如果要根据屏幕大小(而不是dpi)更改某些图像或大小,可以使用以下方法:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);
if(screenInches > sizeYouWant){
    //do what you want
}