2011-12-12 10 views
6

Ho appena fatto un nove-patchAndroid nove patch non essere riconosciuti sul dispositivo

http://i41.tinypic.com/f4fk35.png

viene salvato come border.9.png dallo strumento cerotto disegnare 9.

nel mio editor di layout Android, si presenta come se fosse un vero e proprio grafico a 9 patch, allungato ma non pixelato.

http://i39.tinypic.com/28bsi69.png

ancora su un dispositivo reale, mostra solo un gigante allungato immagine, con le guide 9patch visto, sembra davvero male

http://i42.tinypic.com/eoshe.png

che cosa sta succedendo ??? e come posso risolvere il problema

mio xml:

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/border" 
     android:orientation="vertical" 
     android:padding="35dip" > 

risposta

6

Potete trovare tutte le informazioni necessarie come creare un 9.patch here

vostro sfondo deve essere come questo

nine patch background

Nota: i contrassegni in basso e a destra devono essere disegnati come linee complete, non come singoli punti.

Modifica
sembra che il caricamento del 9.patch qui si altera, e non può essere usato come un 9.patch più.
È possibile scaricare la versione funzionale da here

+0

Grazie! Ho capito ora, ho dovuto modificarlo di nuovo ma ha funzionato per me! – CQM

4

Sembra un file 9.ptach non valido per me. Ci dovrebbero essere regioni solide in basso e sul lato destro.

+2

+1 funziona per me: i singoli punti come indicatori di contenuto sembrano buoni nell'utility 'draw9patch' e nell'editor di layout ADT, ma per funzionare sul dispositivo, gli indicatori di contenuto (in basso e/o a destra) devono essere disegnati come un unico linea completa – sulai

3

Come ultima risorsa, ogni volta che si fatica a trovare una patch 9 per essere riconosciuta come tale, trovo che sia sempre meglio creare un file di immagine NUOVISSIMO nel software di imaging, copiare tutti tranne i 4 Bordi a 1 pixel dell'immagine originale, quindi incollali nel nuovo file immagine. A volte, indipendentemente da quanto si eliminano i 4 lati, il dispositivo/emulatore non è ancora in grado di riconoscerlo come una patch a 9, anche se (e probabilmente dovrebbe interessare il team di sviluppo di SDK di Android) è perfettamente perfetto 9 -patch nel layout grafico di Eclipse.

Inoltre, le linee nere sul margine destro e inferiore sono opzionali. Specificano "padding", in particolare la regione in cui si adatta il contenuto (il figlio del genitore con lo sfondo a 9 patch).

10

Ho appena avuto lo stesso problema: tutto ha funzionato bene in Eclipse ma in tutti i punti del dispositivo. L'ho risolto aprendo il PNG nel Draw 9-patch tool. Basta aprire il png e salvarlo et voilà!

+2

+1. Questo è esattamente quello che è successo a me. I PNG a 9 patch che mi sono stati dati non funzionavano correttamente sul simulatore/dispositivo fino a quando non li ho aperti/salvati nello strumento Draw 9-patch (nonostante avessero visto Ok nel buil del layout della GUI). Magia. –

+0

questo è pazzesco ... ma risolve il problema –

+0

strano .. ma ha funzionato, grazie uomo – Jakob

1

Mi ci sono volute alcune ore per capire perché la mia patch non funzionava correttamente.

La ragione era piuttosto semplice.La mia immagine di patch nove è stato conservato sotto:

/res/drawable 

invece di

/res/drawable-xxx 
Problemi correlati