Android,防止ImageButton拉伸TableLayout
Android, prevent ImageButton from stretching TableLayout
因此,我正在尝试在左下角制作一个带有 ImageButton
的自定义键盘,但是图像拒绝按比例缩小,就像我使用 wrap_content
一样。 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>
我的风格:
<resources>
<style name="CalculatorButton" >
<item name="android:layout_width" >0dp</item>
<item name="android:layout_weight" >33</item>
<item name="android:layout_height" >fill_parent</item>
<item name="android:background">@drawable/CalculatorButtonBackground</item>
</style>
<style name ="CalculatorRow">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_weight">25</item>
<item name="android:layout_height">0dip</item>
<item name="android:weightSum">99</item>
<item name="android:gravity">fill_vertical</item>
<item name="android:divider">@drawable/CalculatorDivider</item>
<item name="android:dividerPadding">0dp</item>
<item name="android:showDividers">middle</item>
</style>
<style name ="CalculatorTable">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:weightSum">100</item>
<item name="android:divider">@drawable/CalculatorDivider</item>
<item name="android:dividerPadding">0dp</item>
<item name="android:showDividers">middle</item>
<item name="android:background">@drawable/CalculatorTableBackground</item>
<item name="android:layout_margin">1dp</item>
</style>
</resources>
输出(我想要的 - 在左边,我已经得到的 - 在右边):
建议:要设计一个键盘,你可以很好地使用Linearlayout 并为weightsum 和weight 属性设置适当的值。
将您的图片按钮包裹在这样的布局中
<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>
将考虑图像的原始高度。所以最好给出图片的宽高。
我自己想出了一个问题。 TableRow
元素无法压缩内部元素。所以答案是 - 用 LinearLayot
.
替换 TableRow
元素
因此,我正在尝试在左下角制作一个带有 ImageButton
的自定义键盘,但是图像拒绝按比例缩小,就像我使用 wrap_content
一样。 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>
我的风格:
<resources>
<style name="CalculatorButton" >
<item name="android:layout_width" >0dp</item>
<item name="android:layout_weight" >33</item>
<item name="android:layout_height" >fill_parent</item>
<item name="android:background">@drawable/CalculatorButtonBackground</item>
</style>
<style name ="CalculatorRow">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_weight">25</item>
<item name="android:layout_height">0dip</item>
<item name="android:weightSum">99</item>
<item name="android:gravity">fill_vertical</item>
<item name="android:divider">@drawable/CalculatorDivider</item>
<item name="android:dividerPadding">0dp</item>
<item name="android:showDividers">middle</item>
</style>
<style name ="CalculatorTable">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:weightSum">100</item>
<item name="android:divider">@drawable/CalculatorDivider</item>
<item name="android:dividerPadding">0dp</item>
<item name="android:showDividers">middle</item>
<item name="android:background">@drawable/CalculatorTableBackground</item>
<item name="android:layout_margin">1dp</item>
</style>
</resources>
输出(我想要的 - 在左边,我已经得到的 - 在右边):
建议:要设计一个键盘,你可以很好地使用Linearlayout 并为weightsum 和weight 属性设置适当的值。
将您的图片按钮包裹在这样的布局中
<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>
将考虑图像的原始高度。所以最好给出图片的宽高。
我自己想出了一个问题。 TableRow
元素无法压缩内部元素。所以答案是 - 用 LinearLayot
.
TableRow
元素