J2ME - tło kontenera

Odpowiedz Nowy wątek
2011-08-24 18:59
piter
0

Witajcie,
Mam problem.
Tworzę kontener z czarnym tłem, dodaję do kontenera obraz, następnie dynamicznie tworzę na obrazie labele, które po zaznaczeniu mają tło kontenera czyli czarne, a zależy mi aby labele miały tło obrazu. Jak to zrobić?

Czekam na pomysły,
Pozdrawiam,
piter

Pozostało 580 znaków

2011-08-24 21:41
0

Rozumiem że więcej informacji już nie udzielisz? Może tak kod pokażesz, albo jakiej biblioteki graficznej używasz whatever...

Pozostało 580 znaków

2011-08-24 23:16
0

Sposób 1 (tradycyjny):
Kontroluj współrzędne labeli, na ich podstawie określ, który kawałek obrazka będzie leżał pod każdym z nich indywidualnie i odrysowuj nim tło labela (lub dowolnego innego komponentu). Taka sama metoda jest używana do tworzenie komponentów lub okienek o nieprostokątnym kształcie. Wadą rozwiązania jest dwukrotne odmalowywanie tego samego obszaru ekranu - raz przez metodę odrysowującą obrazek na kontenerze, a drugi raz w komponencie gui. Ta wada staje się nieakceptowalna jeżeli położenie labeli musi być przesuwane w czasie rzeczywistym (np. animowane). Efektem będzie wtedy migotanie odmalowywanego obszaru.

Sposób 2:
Szukasz po źródle kodu labela gdzie jest instrukcja odmalowująca cały obszar komponentu za pomocą koloru tła (w J2SE byłoby to fillRect lub clearRect). Jeżeli nie znajdziesz na pierwszym poziomie, to szukasz w przodku. Następnie tworzysz "od nowa" komponent taki jak label dziedzicząc od najstarszego przodka (może użyć oryginalnych źródeł*), w którym odmalowywanie komponentu występuje. Jednak znalezione odmalowywanie usuwasz w swojej wersji. W kontenerze używasz tak spreparowanego elementu , więc każde odmalowanie pozostawi w miejscu tła labela "dziurę" (reszta powinna się prawidłowo odmalować). Miejsce dziury powinno być (z automatu) wypełniane w kolejności odmalowywania - czyli przez kontener. W ten sposób nic nie robiąc uzyskasz właściwy efekt. Zarówno kontener jak i label powinny być "lekkie". Inaczej odmalowywanie tła może być wymuszone niżej (np. przez system lub trudno dostępną część kodu Javy). Zaletą jest to, że na wolnych urządzeniach graficznych "nic nie robienie" jest bardzo szybkie. :)
W niektórych przypadkach żeby osiągnąć ten sam efekt wystarczy skorzystać z normalnego dziedziczenia i możliwości javowego gui.

    • legalność dyskusyjna

Jeżeli ktoś komuś coś, ewentualnie nikt nikomu nic, to właściwie po co...?

Pozostało 580 znaków

2011-08-25 12:51
piter
0

problem rozwiązany, dziękuję za pomoc/

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0