2017-06-06 1 views
2

Also, ich versuche, eine benutzerdefinierte Tastatur mit ImageButton in der unteren linken Ecke, aber das Bild weigert sich zu verkleinern, als ob ich mit wrap_content. wrap_content Eigenschaft wird nie verwendet.Android, verhindern ImageButton von Stretching TableLayout

<?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> 

Mein Stile:

<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> 

Ausgang (was ich will - auf der linken Seite, was ich bekommen haben - auf der rechten Seite): enter image description here

Antwort

0

Ich habe mir ein Problem gestellt. TableRow Element war nicht in der Lage, ein Element im Inneren zu verengen. Also eine Antwort ist - TableRow Element durch LinearLayot zu ersetzen.

1

Vorschlag: eine Tastatur zu entwerfen, Sie können nur Linearlayout mit geeigneten Werten für das Gewicht und Gewicht Attribut verwenden.

Ihr Bild Taste wie diese in einem Layout Wrap wird

<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> 

ursprüngliche Höhe des Bildes betrachtet werden. Also gib besser die Breite und Höhe des Bildes an.

+0

Ich glaube nicht wirklich, dass der Wechsel zu 'LinearLayout' helfen wird. Ich denke, es gibt ein Problem mit ImageButton selbst. Und ja, ich habe versucht, es in ein anderes Layout (wie Row-> LinearLayout-> ImageButton) – user7803907

+0

Versuchen Sie meine bearbeitete Antwort – Divya