根据ImageButton drawable调整按钮宽度

时间:2014-01-13 21:55:17

标签: android xml android-layout relativelayout

我有两个问题:

  1. 在布局xml中有一个ImageButton,其中drawable是一个资源。对于此imageButton,具有不同大小的drawable-ldpi到xxhdpi,宽度取决于应用程序运行的设备。在布局xml的底部我有一个9-patch按钮,我希望它与drawable / imageButton具有相同的宽度。

  2. 如何使用不同布局xml中的1.到第二个9-patch按钮继承动态?

  3. 我的尝试是用RelativeLayout制作一个wrap_content,它可以很好地包裹所有内容。 当我将buttonStart宽度设置为match_parent时,它使用整个屏幕,而不是UIWrapper的宽度。任何帮助表示赞赏。 THX!

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/main_activity_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/background"
        android:focusable="true"
        android:screenOrientation="portrait"
        tools:context=".MainActivity" >
    
        <RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/UIWrapper"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="62dp" >
    
            <RelativeLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/imageWrapper"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true" >
    
                <ImageButton
                    android:id="@+id/imageButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="false"
                    android:layout_alignParentTop="true"
                    android:layout_centerHorizontal="true"
                    android:background="?android:attr/selectableItemBackground"
                    android:src="@drawable/my_gfx" />
    
                <TextView
                    android:id="@+id/textViewTest"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:layout_gravity="center_horizontal|top"
                    android:clickable="false"
                    android:shadowColor="@color/LightYellow"
                    android:shadowDx="0.0"
                    android:shadowDy="0.0"
                    android:shadowRadius="24"
                    android:text="Some Text"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:textColor="@color/DarkBlue"
                    android:textSize="48dp" />
            </RelativeLayout>
    
            <TextView
                android:id="@+id/T0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/imageWrapper"
                android:layout_below="@+id/imageWrapper"
                android:layout_marginTop="10dp"
                android:text="@string/label"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@color/FloralWhite" />
    
            <RadioGroup
                android:id="@+id/T1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/T0"
                android:layout_below="@+id/T0" >
    
                <RadioButton
                    android:id="@+id/radioButton0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:checked="true"
                    android:enabled="true"
                    android:singleLine="true"
                    android:text="@string/rd_0"
                    android:textColor="@color/White" />
    
                <RadioButton
                    android:id="@+id/radioButton1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:enabled="true"
                    android:text="@string/rd1"
                    android:textColor="@color/FloralWhite" />
            </RadioGroup>
    
            <Button
                android:id="@+id/buttonStart"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_centerHorizontal="true"
                android:layout_marginBottom="14dp"
                android:background="@drawable/default_button"
                android:text="@string/btn_start"
                android:textColor="@color/FloralWhite" />
        </RelativeLayout>
    </RelativeLayout>
    

1 个答案:

答案 0 :(得分:1)

第一

要获得相同的宽度:

 android:id="@+id/buttonStart"
 android:layout_alignRight="@+id/..."
 android:layout_alignLeft="@+id/..."

并设置要用于调整按钮宽度大小的视图的ID。但是您只需要使用一个RelativeLayout来获得结果。你能发一张你想要的照片吗?

  1. 我要说:你使用了太多嵌套的相对布局。它的 不清楚和普遍。
  2. 你不需要重复属性 xmlns:android="http://schemas.android.com/apk/res/android",只有一次, 在第一个元素。