使用重力android指定布局中的布局高度/宽度

时间:2014-08-25 13:48:20

标签: android android-layout

我的垂直线性布局有重量,我在这个布局中有两个按钮,我希望每个图像都有一个背景,但问题是,由于重量按钮伸出,我无法指定合适的高度和重量。而且给予体重也很重要。我试过在单独的xml中指定按钮的高度,但它仍然是相同的。请告诉我一种为我的按钮指定重量和高度的方法。

<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:orientation="vertical"
android:weightSum="1.0" >

<Button
    android:id="@+id/textbox3"
    android:layout_width="110dp"
    android:layout_height="wrap_content"
    android:layout_weight=".5"
    android:background="@drawable/btn"
    android:padding="50dp"
    android:text="button_1" />

<Button
    android:id="@+id/textbox4"
    android:layout_width="110dip"
    android:layout_height="wrap_content"
    android:layout_weight=".5"
    android:text="button_2" />

5 个答案:

答案 0 :(得分:0)

我认为你必须使用android:gravity="right"

答案 1 :(得分:0)

如果我理解正确,你希望按钮具有特定的高度(110dp),但仍然是等距的(textbox3约为25%,textbox4约为75%)

您不能直接使用1个线性布局直接执行此操作,因为重量和高度是相互冲突的属性(重量最终会覆盖高度)

你想要做的是,每个按钮都有自己的布局,重量= 0.5,而不是新布局中的那个按钮

以下是您需要创建的布局的skelaton:

<LinearLayout
    android:orientation="vertical"
    android:weightSum="1.0" >

    <RelativeLayout
        android:layout_weight=".5">

        <Button
             android:layout_width="110dp"
             android:layout_height="wrap_content"
             androud:layoutCenterInParent=true />
    </RelativeLayout>


    <RelativeLayout
        android:layout_weight=".5">

        <Button
             android:layout_width="110dp"
             android:layout_height="wrap_content"
             androud:layoutCenterInParent=true />
    </RelativeLayout>


</LinearLayout>

答案 2 :(得分:0)

Button放在LinearLayout内并加权适用于他们

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:weightSum="1.0" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight=".5"
       android:gravity="center" >

        <Button
            android:id="@+id/textbox3"
            android:layout_width="110dp"
            android:layout_height="wrap_content"
            android:background="@drawable/ic_launcher"
            android:text="button_1" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight=".5"
        android:gravity="center" >

        <Button
            android:id="@+id/textbox4"
            android:layout_width="110dip"
            android:layout_height="wrap_content"
            android:text="button_2" />
    </LinearLayout>

</LinearLayout>

答案 3 :(得分:0)

使用ImageButton,您可以指定图像的缩放方式。检查以下示例和android:scaleType属性

    <LinearLayout 
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:orientation="vertical"
android:weightSum="1.0" >

<ImageButton
    android:id="@+id/textbox3"
    android:layout_width="110dp"
    android:layout_height="0dp"
    android:layout_weight=".5"
    android:maxHeight="20dp"
    android:padding="50dp"
    android:scaleType="centerCrop"
    android:src="@drawable/btn"
    android:text="button_1" />

<ImageButton
    android:id="@+id/textbox4"
    android:layout_width="110dip"
    android:layout_height="0dp"
    android:layout_weight=".5"
    android:text="button_2" />
    </LinearLayout>

答案 4 :(得分:0)

得到了它。我删除了按钮并添加了两个布局,将父布局划分为50-50,然后将按钮置于这些布局的中心。

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight=".25"
        android:background="@drawable/racoon_tile_2" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_gravity="bottom"
                android:orientation="vertical"
                android:weightSum="1.0" >

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".5" >

                    <Button
                        android:id="@+id/button1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerHorizontal="true"
                        android:layout_centerVertical="true"
                        android:text="Button" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight=".5" >

                    <Button
                        android:id="@+id/button3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerHorizontal="true"
                        android:layout_centerVertical="true"
                        android:text="Button" />
                </RelativeLayout>
            </LinearLayout>
        </RelativeLayout>
    </RelativeLayout>