【问题标题】:Android relative layout gravity fill problemAndroid相对布局重力填充问题
【发布时间】:2011-10-28 22:49:56
【问题描述】:


我正在尝试创建一个包含 8 个填充屏幕的图像按钮的布局。
我有以下代码:

<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:clickable="true"
  android:gravity="fill"
  android:background="@drawable/background">

  <LinearLayout android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:scaleType="fitXY">

    <ImageButton android:src="@drawable/calls_r1_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:scaleType="fitXY"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r2_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:scaleType="fitXY"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r3_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:scaleType="fitXY"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r4_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:scaleType="fitXY"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r5_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:scaleType="fitXY"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r6_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:scaleType="fitXY"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r7_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:scaleType="fitXY"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r8_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:scaleType="fitXY"
                 android:background="@android:color/transparent"/>
   </LinearLayout>  
</RelativeLayout>

图像按钮的宽度正在填充父级,但高度不是。
如何制作它们,以便它们的高度不同以适应屏幕?
这是在java中完成的吗?
如果是这样,最有效的方法是什么?
谢谢。

【问题讨论】:

  • 尝试为每个 ImageButton 提供 android:layout_weight="1"

标签: android android-layout height android-relativelayout gravity


【解决方案1】:

尝试为每个 ImageButton 提供 android:layout_weight="1"

【讨论】:

  • 我才意识到它已经被放置了。很抱歉搞砸了你的收件箱,@Brahadeesh... :)
【解决方案2】:

下一个方法不是更好吗?

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:clickable="true"
  android:background="@drawable/background">

    <ImageButton android:src="@drawable/calls_r1_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="0dp"
                 android:layout_weight="10"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r2_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="0dp"
                 android:layout_weight="10"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r3_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="0dp"
                 android:layout_weight="10"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r4_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="0dp"
                 android:layout_weight="10"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r5_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="0dp"
                 android:layout_weight="10"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r6_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="0dp"
                 android:layout_weight="10"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r7_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="0dp"
                 android:layout_weight="10"
                 android:background="@android:color/transparent"/>

    <ImageButton android:src="@drawable/calls_r8_c1"
                 android:id="@+id/basic"
                 android:layout_width="fill_parent"
                 android:layout_height="0dp"
                 android:layout_weight="10"
                 android:background="@android:color/transparent"/>
   </LinearLayout>

而不是使用RelativeLayout和重力配置?

【讨论】:

  • weights'"1" 或 "0" 都是重要的,任何更大或更小的都将分别替换为 1 或 0。
【解决方案3】:

试试这个方法:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:clickable="true"
    android:gravity="fill" android:background="#FFFFFF">

    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:scaleType="fitXY">

        <ImageButton android:src="@drawable/a" android:id="@+id/basic"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:scaleType="fitXY" android:background="@android:color/transparent"
            android:layout_weight="1" />

        <ImageButton android:src="@drawable/b" android:id="@+id/basic"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:scaleType="fitXY" android:background="@android:color/transparent"
            android:layout_weight="1" />

        <ImageButton android:src="@drawable/c" android:id="@+id/basic"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:scaleType="fitXY" android:background="@android:color/transparent"
            android:layout_weight="1" />

        <ImageButton android:src="@drawable/d" android:id="@+id/basic"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:scaleType="fitXY" android:background="@android:color/transparent"
            android:layout_weight="1" />

        <ImageButton android:src="@drawable/e" android:id="@+id/basic"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:scaleType="fitXY" android:background="@android:color/transparent"
            android:layout_weight="1" />

        <ImageButton android:src="@drawable/f" android:id="@+id/basic"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:scaleType="fitXY" android:background="@android:color/transparent"
            android:layout_weight="1" />

        <ImageButton android:src="@drawable/g" android:id="@+id/basic"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:scaleType="fitXY" android:background="@android:color/transparent"
            android:layout_weight="1" />

        <ImageButton android:src="@drawable/h" android:id="@+id/basic"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:scaleType="fitXY" android:background="@android:color/transparent"
            android:layout_weight="1" />
    </LinearLayout>
</RelativeLayout>

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多