2012-09-18 111 views
3

我需要添加一個邊框到我的按鈕,當它被點擊時,我需要從按鈕的背景(我得到遠程,所以我不能使用R.drawable.picture等)保持它的方式。Android添加邊框到按鈕

總之,點擊時,我想添加一個邊框到我的(自定義後臺)按鈕。

我該怎麼做?我已經閱讀了很多關於邊框,按鈕,形狀,選擇器等的頁面和問題,但是其中大部分涉及xml,但是因爲在啓動應用程序之前我沒有按鈕的背景,所以我認爲我是必須以編程方式添加和刪除邊框。再次,我需要保留自定義按鈕背景,但添加一個小的onclick邊框。

注意:我在所有按鈕上使用此尺寸不同的尺寸。所以應用drawable不是一個真正的選擇。我想我必須圍繞點擊按鈕繪製矩形。

注2:同樣,我有一個必須應用的背景。邊界僅僅是onclick事件的一個小指標。所以我不能放在XML背景是某種選擇器

+0

檢查此鏈接:http://stackoverflow.com/questions/6444194/android-programatically-create-button-border – 2012-09-18 09:58:28

回答

0

您可以定義XML layer_list與2層:一個用於圖像,另一個用於你的邊界,並使用該圖層列表作爲您的按鈕的按下狀態的可繪製

+1

所有的按鍵都不同尺寸。這是一個問題嗎? – stealthjong

0

你可以嘗試有一個9.png只有一個黑色邊框透明區域周圍。這可以使用選擇器在按鈕的「按下」狀態下應用。

5

Btn.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_pressed="true" > 
    <shape> 
     <solid 
      android:color="#343434" /> 
     <stroke 
      android:width="1dp" 
      android:color="#171717" /> 
     <corners 
      android:radius="3dp" /> 
     <padding 
      android:left="5dp" 
      android:top="5dp" 
      android:right="5dp" 
      android:bottom="5dp" /> 
    </shape> 
</item> 
<item> 
    <shape> 
     <gradient 
      android:startColor="#343434" 
      android:endColor="#275296" 
      android:angle="270" /> 
     <stroke 
      android:width="0dp" 
      android:color="#171717" /> 
     <corners 
      android:radius="4dp" /> 
     <padding 
      android:left="5dp" 
      android:top="5dp" 
      android:right="5dp" 
      android:bottom="5dp" /> 
    </shape> 
</item> 
</selector> 

此處筆劃屬性將在單擊時顯示爲按鈕的邊框。

將其保存在可繪製文件夾中。並且使用如下

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/btn" 
    android:textColor="@color/white" 
    android:text="Button"/> 
+0

這適用於沒有背景的按鈕。但是,已應用後臺的按鈕在單擊時不顯示任何邊框。 – stealthjong

+0

@ChristiaandeJong你做到了嗎?我的意思是設置一個邊框與背景? –

+0

@ System.exit是的,但不是通過XML文件,因爲我從外部源獲得資源。很久以前,但我認爲我拍攝了圖像,將它製作爲LayerDrawable上的圖層,並使邊框成爲可繪製的9patch,並將其放入LayerDrawable中。雖然它有效,但看起來並不好,所以我建議閱讀其他一些帖子並製作一個自定義按鈕。 – stealthjong