缩放包含布局中的图像按钮

时间:2016-08-29 10:16:29

标签: android xml android-layout imagebutton

我有一个纯粹的一些数字键的布局,并在另一个布局中包含这个。现在我的问题是,当我改变方向或在其旁边放置其他元素时,这些键的宽度会缩放。

my includable keys xml:

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

<LinearLayout android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal"
              android:weightSum="3">

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_7"
            android:text="@string/numeric_7"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_8"
            android:text="@string/numeric_8"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_9"
            android:text="@string/numeric_9"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>


</LinearLayout>

<LinearLayout android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal"
              android:weightSum="3">


    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_4"
            android:text="@string/numeric_4"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_5"
            android:text="@string/numeric_5"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_6"
            android:text="@string/numeric_6"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

</LinearLayout>

<LinearLayout android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal"
              android:weightSum="3">


    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_1"
            android:text="@string/numeric_1"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_2"
            android:text="@string/numeric_2"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_3"
            android:text="@string/numeric_3"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

</LinearLayout>

<LinearLayout android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal"
              android:weightSum="3">


    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_x"
            android:text="@string/numeric_x"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_0"
            android:text="@string/numeric_0"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_dot"
            android:text="@string/numeric_dot"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

</LinearLayout>

我包含它的XML但没有调整按钮的高度,它只是隐藏了没有空格的低位键

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="@color/background_color"
          android:orientation="vertical"
          android:weightSum="3"
          tools:context="Fragments.RegisterFragments.DrawerRegisterFragment">

<ImageView android:layout_width="match_parent"
           android:layout_height="0dp"
           android:layout_weight="1"
           android:src="@drawable/bomb_icon"/>

<include layout="@layout/includable_view_numeric_keys"
         android:layout_weight="2"
         android:layout_height="wrap_content"
         android:layout_width="wrap_content"/>

1 个答案:

答案 0 :(得分:0)

oke,我发现了问题,我应该让按钮的线性布局高度为0dp,并让布局重量处理它。这是我的新xml:

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

<LinearLayout android:layout_width="match_parent"
              android:layout_height="0dp"
              android:layout_weight="1"
              android:orientation="horizontal"
              android:weightSum="3">

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_7"
            android:text="@string/numeric_7"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_8"
            android:text="@string/numeric_8"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_9"
            android:text="@string/numeric_9"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>


</LinearLayout>

<LinearLayout android:layout_width="match_parent"
              android:layout_height="0dp"
              android:layout_weight="1"
              android:orientation="horizontal"
              android:weightSum="3">


    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_4"
            android:text="@string/numeric_4"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_5"
            android:text="@string/numeric_5"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_6"
            android:text="@string/numeric_6"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

</LinearLayout>

<LinearLayout android:layout_width="match_parent"
              android:layout_height="0dp"
              android:layout_weight="1"
              android:orientation="horizontal"
              android:weightSum="3">


    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_1"
            android:text="@string/numeric_1"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_2"
            android:text="@string/numeric_2"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_3"
            android:text="@string/numeric_3"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

</LinearLayout>

<LinearLayout android:layout_width="match_parent"
              android:layout_height="0dp"
              android:layout_weight="1"
              android:orientation="horizontal"
              android:weightSum="3">


    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_x"
            android:text="@string/numeric_x"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_0"
            android:text="@string/numeric_0"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

    <Button android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btn_numeric_dot"
            android:text="@string/numeric_dot"
            android:textSize="@dimen/textSize_numeric_keys"
            android:textColor="@color/numeric_button_text_color"
            android:background="@drawable/btn_register_main"
            android:layout_margin="@dimen/main_buttons_margin"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"/>

</LinearLayout>


</LinearLayout>