2011-12-12 8 views
6

Zrobiłem dziewięciu poprawkęAndroid dziewięć patch nie są ujmowane na urządzeniu

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

jest zapisane jak border.9.png z narzędzia plastra narysować 9.

w moim edytorze układów Android pokazuje, że będzie to łatwa 9 grafika łatki, rozciągnięta, ale nie pikselizowana.

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

jeszcze na prawdziwym urządzeniu, to tylko pokazuje olbrzymi rozciągnięty obraz, z prowadnicami 9patch widziałem, wygląda naprawdę źle

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

co się dzieje ??? i jak mogę to naprawić

mój xml:

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

Odpowiedz

6

można znaleźć wszystkie niezbędne informacje jak stworzyć 9.patch here

Twój tło powinno być tak

nine patch background

Uwaga: znaczniki na dole i na prawo muszą być rysowane jako kompletne linie, a nie pojedyncze kropki.

Edit
Wydaje się, że przesyłając 9.patch tutaj zostaje zmieniony i nie może być stosowany jako 9.patch więcej.
Możesz pobrać wersję funkcjonalną z here

+0

Dzięki! Rozumiem, musiałem to poprawić, ale zadziałało to dla mnie! – CQM

4

To wygląda na nieprawidłowy plik 9.ptach. Powinny znajdować się stałe obszary na dole i po prawej stronie.

+2

+1 działa dla mnie: pojedyncze kropki, ponieważ znaczniki zawartości wyglądają dobrze w narzędziu 'draw9patch' iw edytorze układów ADT, ale aby pracować na urządzeniu, znaczniki zawartości (na dole i/lub na prawo) muszą zostać narysowane jako jeden znak pełna linia. – sulai

3

W ostateczności, gdy masz kłopot z uzyskaniem 9 łatek do rozpoznania jako takiej, uważam, że najlepiej jest po prostu zrobić BRAND NEW plik obrazu w swoim oprogramowaniu do obrazowania, skopiuj wszystkie oprócz 4 1-pikselowe krawędzie oryginalnego obrazu, a następnie wklej do nowego pliku obrazu. Czasami bez względu na to, jak bardzo usuniesz 4 krawędzie, urządzenie/emulator nadal nie może rozpoznać go jako 9-plaster, mimo że (i prawdopodobnie powinno to być problemem dla zespołu programistów Androida SDK), jest idealnie 9 -patch w graficznym układzie Eclipse.

Należy również zauważyć, że czarne linie na prawej i dolnej krawędzi są opcjonalne. Określają one "dopełnienie", w szczególności region, w którym pasuje zawartość (dziecko rodzica z tłem 9-plasterkowym).

10

Po prostu miałem ten sam problem: wszystko działało dobrze w Eclipse, ale wszystko, co streched na urządzeniu. Rozwiązałem go, otwierając PNG w Draw 9-patch tool. Wystarczy otworzyć png i zapisać go i voila!

+2

+1. Właśnie to mi się przydarzyło. Dostarczone 9-plasterkowe pliki PNG nie działały poprawnie na symulatorze/urządzeniu, dopóki nie otworzyłem/nie zapisałem ich w narzędziu Draw 9-patch (mimo że wyglądały OK w buildzie GUI). Magia. –

+0

to jest szalone ... ale rozwiązuje problem –

+0

dziwne .. ale zadziałało, dzięki człowieku – Jakob

1

Zajęło mi kilka godzin, aby dowiedzieć się, dlaczego moja dziewiąta łatka nie renderuje się prawidłowo.

Powód był dość prosty.Moja dziewięć łata zdjęcie zostało umieszczone w folderze:

/res/drawable 

zamiast

/res/drawable-xxx