So, i am trying to make a custom keyboard with ImageButton in the bottom left corner, however the image refuses to scale down, like if i was using wrap_content. wrap_content property is never used.
<?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>
My styles:
<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>
Output (what i want - on the left, what i have got - on the right):

Suggestion: To design a keypad, you can very well use just Linearlayout with appropriate values for weightsum and weight attribute.
Wrap your image button inside a layout like this
<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>
Original height of the image will be considered. So better give the width and height of the image.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With