Android:调整图像按钮和TextViews的大小?

时间:2014-08-07 21:08:44

标签: android android-layout textview imagebutton

我正在尝试将3个文本视图和ImageButtons添加到我的Android布局中。我一直试图调整它们的大小,以便所有6个组件都适合屏幕。

我相信这是一个非常简单的问题,但我无法解决它,它非常令人沮丧。

我该怎么办?

布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tvFirstTabMaths"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Maths"
        android:textSize="15dp" />

    <ImageButton
        android:id="@+id/ibFirstTabMathsButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/mathsicon" />

    <TextView
        android:id="@+id/tvFirstTabMemory"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" Memory"
        android:textSize="15dp" />


    <ImageButton
        android:id="@+id/ibFirstTabMemoryButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/memoryicon" />


     <TextView
        android:id="@+id/tvFirstTabStroop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Stroop"
        android:textSize="15dp" />

    <ImageButton
        android:id="@+id/ibFirstTabStroopButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/stroopicon" />


</LinearLayout>

4 个答案:

答案 0 :(得分:1)

尝试这样做:

 <?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">
    <LinearLayout android:layout_width="match_parent"
        android:layout_height="match_parent" android:orientation="vertical">

        <TextView android:id="@+id/tvFirstTabMaths"
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:text="Maths" android:textSize="15dp" android:layout_weight="1" />

        <ImageButton android:id="@+id/ibFirstTabMathsButton"
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:src="@drawable/mathsicon" android:layout_weight=".5" />

        <TextView android:id="@+id/tvFirstTabMemory"
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:text=" Memory" android:textSize="15dp" android:layout_weight="1" />


        <ImageButton android:id="@+id/ibFirstTabMemoryButton"
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:src="@drawable/memoryicon" android:layout_weight=".5" />


        <TextView android:id="@+id/tvFirstTabStroop"
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:text="Stroop" android:textSize="15dp" android:layout_weight="1" />

        <ImageButton android:id="@+id/ibFirstTabStroopButton"
            android:layout_width="match_parent" android:layout_height="wrap_content"
            android:src="@drawable/stroopicon" android:layout_weight=".5" />


    </LinearLayout>
</ScrollView>

答案 1 :(得分:0)

如果您想让它们填满屏幕,您需要使用layout_weight属性。

将所有android:layout_height="wrap_content"更改为android:layout_height="0dp"并添加android:layout_weight="1"


权重使视图共享可用空间。

重量可以是浮子,它可以是你想要的任何东西。它就像比例,如果你有1和2的东西,第二个将是第一个的两倍。

您也可以在LinearLayout上使用weight_sum="10",然后如果您让孩子的视图重量减去10,则会留下空白空间。例如,你的按钮将获得屏幕的6/10,并且4/10为空。

您还可以将没有重量的视图放在具有权重的视图的容器中。第一个视图将占用其空间,剩余空间将与其余视图共享。

答案 2 :(得分:0)

您是否正在使用线性布局,您应该将android:layout_weight设置为儿童。来自文档:&#34;该属性赋予&#34;重要性&#34;根据屏幕上应占用多少空间来估算视图。较大的权重值允许它扩展以填充父视图中的任何剩余空间。子视图可以指定权重值,然后视图组中的任何剩余空间按其声明权重的比例分配给子项#34;

答案 3 :(得分:0)

如果您想要所有6个视图水平放置,您应该尝试以编程方式获取屏幕大小,然后设置视图width / params。

view.setWidth(width/6);