Android,防止ImageButton拉伸TableLayout

时间:2017-06-06 11:54:57

标签: android android-layout layout imagebutton

所以,我正在尝试在左下角制作一个带有ImageButton的自定义键盘,但是图像拒绝缩小,就像我使用wrap_content一样。 <{1}}属性永远不会被使用。

wrap_content

我的风格:

<?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="match_parent"
  android:background="@color/bgColor"
  android:weightSum="100">
  <LinearLayout
      android:orientation="vertical"
      android:minWidth="25px"
      android:minHeight="25px"
      android:layout_width="match_parent"
      android:layout_height="0dip"
      android:id="@+id/linearLayout1"
      android:background="@color/orange"
      android:layout_weight="10" />
  <LinearLayout
      android:orientation="vertical"
      android:minWidth="25px"
      android:minHeight="25px"
      android:layout_width="match_parent"
      android:layout_height="0dip"
      android:id="@+id/linearLayout2"
      android:layout_weight="80"
      android:weightSum="100">
      <LinearLayout
          android:orientation="vertical"
          android:minWidth="25px"
          android:minHeight="25px"
          android:layout_width="match_parent"
          android:layout_height="0dip"
          android:layout_weight="40"
          android:id="@+id/linearLayout4"
          android:weightSum="100">
          <LinearLayout
              android:orientation="vertical"
              android:minWidth="25px"
              android:minHeight="25px"
              android:layout_width="match_parent"
              android:layout_height="0dp"
              android:id="@+id/linearLayout6"
              android:layout_weight="15" />
          <LinearLayout
              android:orientation="vertical"
              android:minWidth="25px"
              android:minHeight="25px"
              android:layout_width="match_parent"
              android:layout_height="0dp"
              android:id="@+id/linearLayout7"
              android:layout_weight="70"
              android:weightSum="100">
              <LinearLayout
                  android:orientation="horizontal"
                  android:layout_width="match_parent"
                  android:layout_height="0dp"
                  android:id="@+id/linearLayout9"
                  android:layout_weight="45"
                  android:weightSum="100">
                  <ImageView
                      android:src="@drawable/eurcurrency"
                      android:layout_width="0dp"
                      android:layout_height="match_parent"
                      android:id="@+id/imageView1"
                      android:layout_weight="30"
                      android:scaleType="fitEnd"
                      android:paddingRight="10dp"
                      android:paddingTop="5dp"
                      android:paddingBottom="5dp" />
                  <TextView
                      android:text="0"
                      android:layout_width="0dp"
                      android:layout_height="match_parent"
                      android:id="@+id/textView10"
                      android:layout_weight="70"
                      android:paddingRight="5dp"
                      android:paddingLeft="5dp"
                      android:textColor="@android:color/black"
                      android:gravity="center_vertical"
                      android:textSize="30sp" />
              </LinearLayout>
              <LinearLayout
                  android:orientation="vertical"
                  android:minWidth="25px"
                  android:minHeight="25px"
                  android:layout_width="match_parent"
                  android:layout_height="0dp"
                  android:id="@+id/linearLayout10"
                  android:layout_weight="10" />
              <LinearLayout
                  android:orientation="horizontal"
                  android:layout_width="match_parent"
                  android:layout_height="0dp"
                  android:id="@+id/linearLayout9"
                  android:layout_weight="45"
                  android:weightSum="100">
                  <ImageView
                      android:src="@drawable/btccurrency"
                      android:layout_width="0dp"
                      android:layout_height="match_parent"
                      android:id="@+id/imageView1"
                      android:layout_weight="30"
                      android:scaleType="fitEnd"
                      android:paddingRight="10dp"
                      android:paddingTop="5dp"
                      android:paddingBottom="5dp" />
                  <TextView
                      android:text="0"
                      android:layout_width="0dp"
                      android:layout_height="match_parent"
                      android:id="@+id/textView10"
                      android:layout_weight="70"
                      android:paddingRight="5dp"
                      android:paddingLeft="5dp"
                      android:textColor="@android:color/black"
                      android:gravity="center_vertical"
                      android:textSize="30sp" />
              </LinearLayout>
          </LinearLayout>
          <LinearLayout
              android:orientation="vertical"
              android:minWidth="25px"
              android:minHeight="25px"
              android:layout_width="match_parent"
              android:id="@+id/linearLayout8"
              android:layout_height="0dp"
              android:layout_weight="15" />
      </LinearLayout>
      <LinearLayout
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:id="@+id/linearLayout5"
          android:layout_weight="60"
          android:weightSum="100"
          android:minWidth="25px"
          android:minHeight="25px"
          android:background="@color/orange">
          <TableLayout
              android:id="@+id/tableLayout1"
              android:style="@style/CalculatorTable"
              android:minWidth="25px"
              android:minHeight="25px">
              <TableRow
                  android:id="@+id/tableRow1"
                  android:style="@style/CalculatorRow">
                  <Button
                      android:text="1"
                      android:layout_column="0"
                      android:id="@+id/button2"
                      android:style="@style/CalculatorButton" />
                  <Button
                      android:text="2"
                      android:layout_column="1"
                      android:id="@+id/button6"
                      android:style="@style/CalculatorButton" />
                  <Button
                      android:text="3"
                      android:layout_column="2"
                      android:id="@+id/button3"
                      android:style="@style/CalculatorButton" />
              </TableRow>
              <TableRow
                  android:id="@+id/tableRow2"
                  android:style="@style/CalculatorRow">
                  <Button
                      android:text="4"
                      android:layout_column="0"
                      android:id="@+id/button4"
                      android:style="@style/CalculatorButton" />
                  <Button
                      android:text="5"
                      android:layout_column="1"
                      android:id="@+id/button7"
                      android:style="@style/CalculatorButton" />
                  <Button
                      android:text="6"
                      android:layout_column="2"
                      android:id="@+id/button5"
                      android:style="@style/CalculatorButton" />
              </TableRow>
              <TableRow
                  android:id="@+id/tableRow3"
                  android:style="@style/CalculatorRow">
                  <Button
                      android:text="7"
                      android:layout_column="0"
                      android:id="@+id/button8"
                      android:style="@style/CalculatorButton" />
                  <Button
                      android:text="8"
                      android:layout_column="1"
                      android:id="@+id/button9"
                      android:style="@style/CalculatorButton" />
                  <Button
                      android:text="9"
                      android:layout_column="2"
                      android:id="@+id/button10"
                      android:style="@style/CalculatorButton" />
              </TableRow>
              <TableRow
                  android:id="@+id/tableRow4"
                  android:style="@style/CalculatorRow"
                  android:orientation="horizontal">
                  <Button
                      android:text="00"
                      android:layout_column="0"
                      android:id="@+id/button11"
                      android:style="@style/CalculatorButton" />
                  <Button
                      android:text="0"
                      android:layout_column="1"
                      android:id="@+id/button12"
                      android:style="@style/CalculatorButton" />
                  <ImageButton
                      android:layout_column="2"
                      android:id="@+id/imageButton1"
                      android:style="@style/CalculatorButton"
                      android:src="@drawable/bitcoineuroswap"
                      android:scaleType="fitCenter" />
              </TableRow>
          </TableLayout>
      </LinearLayout>
  </LinearLayout>
  <LinearLayout
      android:orientation="vertical"
      android:minWidth="25px"
      android:minHeight="25px"
      android:layout_width="match_parent"
      android:id="@+id/linearLayout3"
      android:background="@color/orange"
      android:layout_weight="10" />
  </LinearLayout>

输出(我想要的 - 在左边,我有什么 - 在右边): enter image description here

2 个答案:

答案 0 :(得分:1)

建议:要设计一个键盘,你可以很好地使用Linearlayout和权重和权重属性的适当值。

将图像按钮包裹在像这样的布局中

 <RelativeLayout android:style="@style/CalculatorButton">
                        <ImageButton
                            android:id="@+id/imageButton1"
                            android:layout_centerInParent="true"
                            android:layout_width="20dp"
                            android:layout_height="20dp"
                            android:layout_column="2"
                            android:scaleType="fitCenter"
                            android:src="@drawable/hj" />
                    </RelativeLayout>

将考虑图像的原始高度。因此,最好给出图像的宽度和高度。

答案 1 :(得分:0)

我认为自己有一个问题。 TableRow元素无法限制内部元素。答案是 - 用TableRow替换LinearLayot元素。