2012-08-23 11 views

Odpowiedz

7

Można to osiągnąć za pomocą layerlist i brudząc z wyściółką. Musisz 3 elementy:

1: kształt border.xml, który jest po prostu stały kształt w kolorze swojej granicy: border.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#ff0000"/> 
</shape> 

2: The 'wewnętrzna' kształt, kształt gdzie chcesz ramkę wokół: inner.xml

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <solid android:color="#00ff00"/> 
</shape> 

3: lista warstw, które będzie można umieścić te 2 na szczycie siebie. Utworzyć granicę poprzez ustawienie na wyściółkę wewnętrzną kształtu: layerlist.xml

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/border"/> 
<item android:drawable="@drawable/inner" 

Określ tutaj, gdzie chcesz mieć udar (górny, lewy, prawy i dolny)

android:top="3dp" android:right="0dp" android:bottom="3dp" 
android:left="3dp" /> 

Ustaw jako tło swojego widoku tekstu, układu itp. (Tam, gdzie chcesz, aby pojawił się obrys).

Lub po prostu utwórz obraz 9Patch z obramowaniem.

+0

jak polubić ten http://stackoverflow.com/questions/40322955/android-shape-border-with-gradient-and-middle-transparent? – Suman