2013-05-13 10 views
8

Mam kawałek kodu, który dodaje trochę obraz do EditText wykorzystaniem SpannableString następująco:SpannableString nie są wyświetlane prawidłowo w trybie Krajobrazowego

SpannableString ss = new SpannableString("Some random String in my application."); 
Drawable d = getResources().getDrawable(R.drawable.emoticon_0001); 
ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM); 
ss.setSpan(span, startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 

Istnieją pewne obliczenie indeksu pomiędzy że nie należą, ponieważ są one nieważne. Kod działa poprawnie. Oto niektóre obraz niej:

pionowa i pozioma w trybie non edycji:

Portrait Landscape

Jednak, gdy zacznę edycji w trybie krajobrazu, tekst za obrazie pojawia:

My name is problem, BIG problem

Jak większość ludzi wie, dziwny ciąg reprezentuje Unicode dla emotikonów w telefonie iPhone. Czy ktoś napotkał ten problem wcześniej?

EDYCJA: Przetestowany z android:imeOptions="actionDone|flagNoExtractUi", nie działa, sugestia słowo ukryje mój EditText.

+0

Nie widziałem tego, ale zrobiłem wystarczająco dużo pracy z klawiatur, aby mieć dobre przypuszczenie o tym, co się dzieje. Wygląda na to, gdy wyświetla się widok ekstraktu (widok ekstraktu jest częścią edycji poziomej nad klawiaturą, faktycznie rysowany przez system Android i jest częścią aplikacji z POV klawiatury), tracisz swój zasięg obrazu i po prostu umieszczany jest tam zwykły tekst. Dlaczego i jak to naprawić, nie mam w tej chwili dobrych pomysłów. Czy dzieje się to również w innych aplikacjach? Powiedz, że aplikacja do wysyłania wiadomości? Co powiesz na edycję portretu? –

+0

Dziękuję za informacje, testowałem z dobrze znaną aplikacją do przesyłania wiadomości Whatsapp. I wyświetla te puste emotikony. Ma to sens, ponieważ te znaki reprezentują Unicode, które będą pustą przestrzenią, jeśli nie będą w stanie znaleźć właściwego symbolu dołączonego do kodu. Podobnie jak przy wysyłaniu emoji z iPhone'a SMS na urządzenie z Androidem, puste miejsce zostanie wyświetlone. –

+1

@GabeSechan Przepraszamy, ale nie odpowiedziałeś na twoje pytanie, edycja w trybie portretowym działa dobrze. Problem występuje tylko przy edycji krajobrazu, a to samo dotyczy aplikacji WhatsApp. –

Odpowiedz

0

Proponuję Ci przekonwertować kod HTML w łańcuchu spannable na czysty ciąg UNICODE przed wyświetleniem edycji klawiatury. Jeśli emotikony w standardzie UNICODE są obsługiwane, to powinny być wyświetlane podczas edycji. Po zakończeniu edycji przekonwertuj go z powrotem do HTML.

android html decoding

+0

Nie jestem pewien, czy Android obsługuje teraz unikod tego emoji, w czasie, gdy zadawałem to pytanie, kody Unicode są tylko "legalne" na iPhonie. Powiedz, jeśli wyślesz SMS-a z iPhone'a do Androida, z emoji w nim, android nic nie zobaczy .. –

Powiązane problemy