Per quanto ho capito, non esiste un modo semplice per farlo. ma se utilizzi la lista dei livelli con un oggetto che ha il bordo e poi uno che non ha un offset da tutti i lati per i quali desideri un bordo uguale alla larghezza del bordo, lo otterresti.
Permettetemi di fare il xml per rappresentare il fondo senza confini ..
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Border -->
<item>
<shape>
<solid android:color="#f000"></solid>
</shape>
</item>
<!-- Body -->
<item android:left="2dip"
android:top="2dp"
android:right="2dp">
<shape>
<solid android:color="#ffafafaf"></solid>
</shape>
</item>
</layer-list>
Come potete vedere, sto dicendo la seconda voce da inserto del primo da due DP di tutte le parti ad eccezione in basso (da qui il risultato non-border sul fondo), ci si va:
Quindi, in sostanza non si tratta di una frontiera per-sé, è la forma dal basso (anche se si potrebbe aggiungere un bordo se hai bisogno di essere tratteggiato o punteggiato o altro) un secondo elemento con sarebbe il corpo del pulsante. Tutto nello stesso drawable :)
Questo può essere applicato a qualsiasi bordo che si desidera rimuovere, modificando i valori che l'elemento è inserito, ad esempio, se cambio lo right
nell'elemento Corpo su bottom
, manca confine sarebbe quello giusto dal momento che è l'uno senza l'inserto
fonte
2012-05-13 10:47:06
Beh, dove fare Devo posizionare i miei stili? Nel primo- , giusto? –
A proposito, sto cercando di usarlo su EditText. –
Non importa a quale vista lo si applica. Il primo 'item' è solo per il bordo, quindi è necessario dividere lo stile tra questi due. Se vuoi uno sfondo verde, ad esempio, lo aggiungerei al secondo elemento, quello chiamato "body" sul mio codice –