2014-02-18 18 views
2

我使用Imagebuttons來顯示我的android項目中的一些圖標。如何在Android中爲單擊的圖像按鈕製作邊框?

<ImageButton 
    android:id="@+id/button_one" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:padding="20dp" 
    android:contentDescription="@string/button_one" 
    android:background="@android:color/transparent" 
    android:src="@drawable/button_one" /> 

我想,當按鈕處於按下狀態時,會出現帶圓角的白色邊框。我能做些什麼來做到這一點?這可以用代碼完成,還是需要額外的背景圖片?

+1

一般來說,我已經看到這與次圖像和一個單獨的drawable.xml文件,它定義每個狀態的圖像。然後,該drawable就是在這個特定的接口文件中調用這個特定的ImageButton的東西。 – trumpetlicks

+0

真的沒有更簡單的方法。然後,我將不得不爲所有不同的分辨率創建輔助圖像... – user2426316

+0

您需要創建一個可繪製的xml文件並將其設置爲背景! – Eenvincible

回答

11

如果您不想使用邊框創建單獨的圖像,可採用以下方法之一。

與邊框樣式創建一個XML繪製(前。border.xml)

<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <stroke 
     android:width="1dp" 
     android:color="#FFF" /> 
    <padding 
     android:left="1dp" 
     android:top="1dp" 
     android:right="1dp" 
     android:bottom="1dp" /> 
    <corners 
     android:bottomRightRadius="8dip" 
     android:bottomLeftRadius="8dip" 
     android:topRightRadius="8dip" 
     android:topLeftRadius="8dip" /> 
</shape> 

創建一個選擇器繪製(前。some_selector_name.xml)。基本上當按下時,它會顯示你的邊框可繪製的。否則,它將是透明的。

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/border" /> 
    <item android:drawable="@android:color/transparent" /> 
</selector> 

設置圖像按鈕的背景你選擇繪製。

<ImageButton 
    android:id="@+id/button_one" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:padding="20dp" 
    android:contentDescription="@string/button_one" 
    android:background="@drawable/some_selector_name.xml" 
    android:src="@drawable/button_one" /> 

現在,當你按下按鈕,就應該顯示白色邊框。 這只是一個例子,但你應該明白。

+0

這正是我一直在尋找的!謝謝! – user2426316