与android中的按钮相关的问题

时间:2011-02-22 06:32:52

标签: android

是否可以用android中的按钮表示layout_width和layout_height的维度百分比?如果没有,那么效果会相同???

4 个答案:

答案 0 :(得分:0)

使用android:layout_width="100dip" and android:layout_height="100dip"

答案 1 :(得分:0)

我认为改变大小的最佳做法是textAppearance属性 关于它的文档位于:http://developer.android.com/reference/android/widget/TextView.html#attr_android:textAppearance和此处:http://developer.android.com/reference/android/R.attr.html#textAppearance

所以如果你真的不需要静态大小并且只希望它相对更小或更大,你应该使用这种方法。

答案 2 :(得分:0)

那么,你想要一个视图占据父母空间的30%?你可以使用线性布局来做这个技巧,虚拟视图占据70%的空间(可以使用权重来完成)。但最好的方法就是为此目的编写自己的布局。

答案 3 :(得分:0)

据我所知,您无法为任何布局指定百分比大小。但是支持库示例中引入了一个名为 PercentageRelativeLayout 的布局:

<android.support.percent.PercentRelativeLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent">
     <ImageView
         app:layout_widthPercent="50%"
         app:layout_heightPercent="50%"
         app:layout_marginTopPercent="25%"
         app:layout_marginLeftPercent="25%"/>
 </android.support.percent.PercentRelativeLayout>

另一种替代解决方案是对任何父级和子级布局使用 weightSum layout_weight 属性。一个例子如下所示。这将与百分比相同,并且两个子布局将在屏幕上分配50%宽度。 weightSum用于父布局,layout_weight用于子布局。

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:weightSum="2">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/bg"
            android:orientation="horizontal"
            android:tileMode="repeat" >
        </LinearLayout>
       <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/bg2"
            android:orientation="horizontal"
            android:tileMode="repeat" >
        </LinearLayout>
    </LinearLayout>