2014-03-06 123 views
1

我需要在水平佈局中創建2個按鈕,其中包含頂部的圖標。android佈局按鈕看起來不如預期

佈局:

<ImageButton 
     android:id="@+id/imageButton2" 
     android:layout_width="wrap_content" 
     android:layout_weight="0.5" 
     android:layout_height="wrap_content" 
     android:src="@drawable/button" /> 

    <ImageButton 
     android:id="@+id/imageButton3" 
     android:layout_width="wrap_content" 
     android:layout_weight="0.5" 
     android:layout_height="wrap_content" 
     android:src="@drawable/button" /> 

</LinearLayout> 

按鈕:

<item> 
    <bitmap 
     android:gravity="right" 
     android:src="@drawable/ic_action_call"/> 
</item> 
<item> 
    <shape android:shape="rectangle" > 

     <gradient 
      android:startColor="#FFEEC9A8" 
      android:endColor="#90FFDAB9" 
      android:angle="45"/> 

     <padding 
      android:left="7dp" 
      android:right="7dp" 
      android:top="7dp" 
      android:bottom="7dp"/> 

     <corners android:radius="10dp"/> 

     <stroke android:width="2px" android:color="#ff888888"/> 

    </shape> 
</item> 

我希望它看起來就像在第一次承受力,但它看起來像第二與周圍的圖標是一個灰色地帶。哪裏不對?

enter image description here enter image description here

後,我加入的android:scaleType = 「fitXY」 的按鈕看起來像: enter image description here

回答

1

使用此。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" > 

<ImageButton 
    android:id="@+id/imageButton2" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="0.5" 
    android:background="@null" 
    android:src="@drawable/ic_launcher" /> 

<ImageButton 
    android:id="@+id/imageButton3" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="0.5" 
    android:background="@null" 
    android:src="@drawable/ic_launcher" /> 

</LinearLayout> 
1

添加以下的屬性到您ImageButton的XML ...

android:scaleType="fitXY" 

所以,你的XML將是...

<ImageButton 
    android:id="@+id/imageButton2" 
    android:layout_width="wrap_content" 
    android:layout_weight="0.5" 
    android:layout_height="wrap_content" 
    android:src="@drawable/button" 
    android:scaleType="fitXY" /> 

<ImageButton 
    android:id="@+id/imageButton3" 
    android:layout_width="wrap_content" 
    android:layout_weight="0.5" 
    android:layout_height="wrap_content" 
    android:src="@drawable/button" 
    android:scaleType="fitXY" /> 

更新:

哪吒的事情,我會建議你使用android:background代替android:src如下...

<ImageButton 
    android:id="@+id/imageButton2" 
    android:layout_width="wrap_content" 
    android:layout_weight="0.5" 
    android:layout_height="wrap_content" 
    android:background="@drawable/button" 
    android:scaleType="fitXY" /> 

另一種方式:

如果你想使用

ImageView那麼你可以做如下...

<ImageView 
    android:id="@+id/imageButton2" 
    android:layout_width="wrap_content" 
    android:layout_weight="0.5" 
    android:layout_height="wrap_content" 
    android:src="@drawable/button" /> 

<ImageView 
    android:id="@+id/imageButton3" 
    android:layout_width="wrap_content" 
    android:layout_weight="0.5" 
    android:layout_height="wrap_content" 
    android:src="@drawable/button" /> 
+0

謝謝。按鈕中的適當區域較大,但周圍仍然有灰色。請看問題中的新圖片。 – Jacob

+0

@Jacob因爲你使用圖像視圖 –

+0

@Jacob ...看到我更新的答案。 –

1

它很安靜。

無需創建圖層列表和所有 只需使用下面的代碼

<ImageButton android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@android:color/darker_gray" 
    android:src="@drawable/ic_launcher" 
    android:paddingLeft="20dip" 
    android:paddingRight="20dip"/> 

如果您發現我已經使用了一些背景素色並提供了一些圖標爲圖像。

因此,使用兩種不同的屬性,如android:backgroundandroid:src

而對於圓角背景首先創建一個名爲round_bg.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 
    <solid android:color="@android:color/darker_gray" /> 
    <corners android:radius="10dip" /> 
</shape> 

現在在我們上面的代碼繪製做以下修改

android:background="@drawable/round_bg" 

你會完成。 :)

+0

我怎樣才能用這種方式來圓角? – Jacob

+0

編輯圓角的答案 –

1

是的,你可以使用點擊與圖片瀏覽

這是僅供參考

另外一件事你創建按鈕使用Nine patches使你的形象會streach在某些部分,並且將響應

例如

enter image description here

這是Nine patche Image,所以只有內容部分每次都會拖拽。休息將保持原樣。