2010-10-14 21 views
25

È possibile creare una forma che sia un rettangolo con tutti i bordi arrotondati. Tuttavia, quello che voglio è una forma rettangolare con solo 2 bordi arrotondati. È possibile?Creazione di una forma rettangolare con solo due bordi arrotondati

Sto essenzialmente hackerando insieme un ListView che sembra una bolla con i bordi arrotondati. Sto cercando di aggiungere un'intestazione che ha i due bordi superiori arrotondati e un piè di pagina con i due bordi inferiori arrotondati.

risposta

14

Ho modificato l'attributo android:radius in android:topRightRadius e

+1

verrà visualizzato perfettamente dopo aver eseguito l'app .. –

-1

Disegna un rettangolo arrotondato e quindi disegna un rettangolo normale su quello arrotondato con lo stesso colore.

0

Vorrei provare a disegnare un rettangolo arrotondato e quindi due rettangoli aggiuntivi della stessa dimensione del raggio dell'angolo del rettangolo arrotondato e posizionarli negli angoli che non si desidera arrotondare.

Ad esempio, un rettangolo arrotondato con un raggio di 15 px e due rettangoli regolari 15x15 px, posizionato negli angoli del rettangolo arrotondato che non deve essere arrotondato.

MODIFICA: rileggendo la domanda, potrebbe essere meglio fare una semplice immagine a 9 patch per la parte superiore e inferiore della listview. Si allungherebbero a qualsiasi dimensione in quel modo senza pixelizzazione. Ciò richiederebbe comunque di creare le immagini in anticipo, e fare le cose con le forme rettangolari sarebbe più semplice da modificare in seguito. Tuttavia, il modo a 9 patch sarebbe meno di un hack.

+0

... in più: è necessario disegnare non è solo uno di nove patch, ma che copre varie densità differenti dello schermo. Ciò lo rende più complesso del necessario. Preferirei farlo in codice e adattare il raggio del cerchio in pixel a seconda della dimensione del rettangolo. – Zordid

2

penso che il migliore (la mia comprensione della tua domanda) è quello di creare un'immagine 9patch e usarla come sfondo - può essere definito per allungare di cui hai bisogno e impostare a livello XML risparmio po 'di lavoro codice

17

Potresti trovare questo utile.

<?xml version="1.0" encoding="utf-8"?> 
<!-- res/drawable/rounded_edittext.xml --> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#FFFFFF"/> 
    <corners 
    android:bottomRightRadius="0dp" 
    android:bottomLeftRadius="0dp" 
    android:topLeftRadius="15dp" 
    android:topRightRadius="15dp"/> 
</shape> 
+0

Non è presente l'attributo padding nella forma –

+0

verrà visualizzato perfettamente dopo l'esecuzione dell'app .. –

1
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#FFFFFF"/> 
<corners 
android:bottomRightRadius="0dp" 
android:bottomLeftRadius="0dp" 
android:topLeftRadius="15dp" 
android:topRightRadius="15dp"/> 
</shape> 

Utilizzare il codice di cui sopra

38
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#FFFFFF"/> 
<corners 
android:bottomRightRadius="0dp" 
android:bottomLeftRadius="0dp" 
android:topLeftRadius="15dp" 
android:topRightRadius="15dp"/> 
</shape> 

Questo codice è solo in funzione (da allora?) Android versione 2.2. Riferendosi alla documentation, il codice dovrebbe essere simile al seguente:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#FFFFFF"/> 
<corners 
android:radius="2dp" 
android:bottomRightRadius="0dp" 
android:bottomLeftRadius="0dp" 
android:topLeftRadius="15dp" 
android:topRightRadius="15dp"/> 
</shape> 
+5

Nel mio caso, non è stato mostrato correttamente nell'editor xml. Esegui il tuo codice per vederlo correttamente. –

+2

Anche per me, sembra che l'editor xml non rispetti le curve con raggi diversi. – WindRider

+0

sarà visualizzato perfetto dopo aver eseguito l'app .. –

Problemi correlati