2015-10-20 36 views
0

我需要創建如下:如何將Android按鈕放置在TextView之上?

---------------------------------------------------- 
|  |           | 
|  |           | 
---------------------------------------------------- 
    |      | 
    ImageButton    TextView 

的ImageButton的有圖像,需要調整來適合的TextView的高度...

我已經成功地定位使用的RelativeLayout按鈕:

 <RelativeLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 
      <TextView 
       android:id="@+id/tense_textview" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:text="@string/tense" 
       android:gravity="center_horizontal" 
       android:background="@android:color/holo_orange_dark" 
       android:padding="15dp" 
       android:textStyle="bold" 
       android:textColor="@android:color/white" /> 
      <ImageButton 
       android:id="@+id/pauseButton" 
       android:background="@drawable/pause_button_background" 
       android:src="@drawable/pause" 
       android:layout_alignParentTop="true" 
       android:layout_alignParentLeft="true" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_margin="10dp" /> 
     </RelativeLayout> 

然而,這給了我:

      TextView 
          | 
---------------------------------------------------- 
|   |          | 
|   |          | 
|   |----------------------------------------- 
|   |          | 
---------------------------------------------------- 
    |      | 
    ImageButton   RelativeLayout 

有什麼想法?

+0

簡單,不要使用ImageView的。在TextView中使用**複合可繪製**。順便說一句,你也可以通過這樣做來擺脫無用的RelativeLayout。因此,在你的TextView中寫入:'android:drawableLeft =「@ drawable/pause」' –

+0

雖然這不會影響圖像的縮放... – lombrozo

+0

如果設置了TextView高度,將縮放到適合ImageView的高度wrap_content。 –

回答

0

使用的ImageView代替的ImageButton並添加
android:layout_alignBottom="@id/tense_textview" android:layout_alignTop="@id/tense_textview" android:scaleType="CENTER_CROP OR CENTER_INSIDE "

CENTER_CROP =縮放圖像統一(保持即時通訊年齡的長寬比),以使圖像的兩個尺寸(寬度和高度)等於或大於視圖的相應尺寸(減去填充)。

CENTER_INSIDE =均勻縮放圖像(保持圖像的縱橫比),使圖像的兩個尺寸(寬度和高度)等於或小於視圖的相應尺寸(減去填充)。

從個人經驗來看,我從來不使用ImageButton,因爲ImageView給了我更多的靈活性,並且ImageButton中存在固有的填充,使我無法實現像素完美。 (這是做,能夠只是一個很大的痛苦)

+0

這壓扁按鈕,我需要它來保持它的長寬比... – lombrozo

+0

因此,對於textview,你想它被集中在圖像按鈕的右側?意味着您將文本垂直和水平居中? –

+0

否我希望文本忽略該按鈕,以便它位於父代的中間 – lombrozo

0

嘗試將ImageButton的高度設置爲match_parent

1

您需要添加屬性:

android:layout_alignBottom="@+id/tense_textview" 

android:layout_alignTop="@+id/tense_textview" 您的ImageView

+0

這壓扁按鈕,我需要它來保持它的長寬比... – lombrozo

+0

是的,你可以添加android:scaleType =「CENTER_INSIDE」與上述解決方案。 –

0

試試這個 -

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:id="@+id/tense_textview" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/tense" 
     android:gravity="center_horizontal" 
     android:background="@android:color/holo_orange_dark" 
     android:padding="15dp" 
     android:textStyle="bold" 
     android:textColor="@android:color/white" 
     android:layout_toRightOf="@+id/pauseButton" 
     android:layout_alignParentRight="true" 
     android:layout_alignBottom="@+id/pauseButton" 
     android:layout_alignTop="@+id/pauseButton"/> 
    <ImageButton 
     android:id="@+id/pauseButton" 
     android:background="@drawable/pause_button_background" 
     android:src="@drawable/pause" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" /> 
</RelativeLayout> 
相關問題