Форум программистов, компьютерный форум CyberForum.ru

Вывод смайликов в SMS чате - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Метод .setText не показывает русские символы http://www.cyberforum.ru/android-dev/thread1448242.html
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Моя проблема в том, что при смене текста в TextView с помощью метода .setText вместо русских символов программа ставит вопросики. Я пробовал также оставить ссылку на файл string, но и это не помогло: программа просто выдала саму ссылку на экран. И да, среда разработки - Android Studio. Заранее большое спасибо за помощь! :)
Android Вывести картинку из интернета в ImageView(android studio) Имеется класс ImageManager package com.example.myapplication4; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Handler; import android.os.Message; import android.util.Log; import android.widget.ImageView; http://www.cyberforum.ru/android-dev/thread1448029.html
Android Редактирование .mtx файлов (перевод игры)
Пытаюсь перевести недавно вышедшую игру. В .apk все картинки с текстом предположительно лежат в файлах с таким построением Имя_файла.png(или .jpeg).mtx.mp3 Пробовал убирать .mp3 из названия и открывать .mtx файл в mtxview.exe|Visual Studio|Notepad ++ -безрезультатно. Есть ли подходящие программы для редактирования .mtx ?
Android Дождаться завершения работы AsyncTask и выполнять код дальше
Помогите, пожалуйста. Мне нужно дождаться завершения работы AsyncTask и только потом выполнять код дальше. Я уже понял, что для этого нужно написать слушатель для AsyncTask, но у меня что-то не получается. Вот эта AsyncTask как дождаться окончания тема мне не подходит, и я решил сам написать свой класс и слушатель. Вот код класса, расширяющий AsyncTask, и, добавляющий слушатель для него: ...
Android Размер кнопок http://www.cyberforum.ru/android-dev/thread1447800.html
Подскажите как начинающему, плиз) Во-первых, я не использую .9png . Для оформления кнопок использую отрисованные бэкграунды. Допустим меня устраивает размер кнопки по размеру бэкграунда, я задаю размер "wrap-content" В чем будет разница при отображении на аппаратах с разным соотношением сторон (4:3 16:9 16:10 и т.д ) если я задам фиксированные размер кнопки в dpi ?:)
Android Вылетает программа, написанная под Андроид Программа под Android Вылетает когда работает на переднем плане. Когда работает в фоновом то не вылетает) На сринах видно как программа загружает ОЗУ и Процессор, Подскажите из за чего?? И как это исправить?? подробнее

Показать сообщение отдельно
mikl35
4 / 4 / 0
Регистрация: 30.05.2014
Сообщений: 126

Вывод смайликов в SMS чате - Android

16.05.2015, 19:17. Просмотров 593. Ответов 1
Метки (Все метки)

Здравствуйте, все вроде работает, но при вводе несколько подряд или не подряд смайликов выводится больше смайликов и текстовое представление смайликов сдвигается вправо. Сначало в переменную String ввожу текст сообщения и там есть текстовые символы отображаемых смайлики, например улыбка :-). Далее сообщение присваиваю переменной типа SpannableString. После ищу в тексте String первое вхождение смайлика и заменяю его символом ноль при этом запоминаю начало позиции и конца смайлика и заменяю в переменной типа SpannableString уже на нужный смайл. Но при вводе несколько смайлов выводит больше смайлов чем нужно. Представлю код где идет проверка на смайлы в тексте и формирование текста со смайликами.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
 //Установка текста SMS с смайликами
    public boolean setsmssmiles(String text){
        boolean rez=false;
        int sm;
        textsms=new SpannableString(text);//вводим текст сообщения в котором будут отображаться и смайлы
        //обозначение смайлов на русском и английском
        String [] smilesrus={":-)", ":-(", ";-)", ":-П", "=-Др", ":-*", ":Др", "Б-)", ":-$", ":-!", ":-[", "Др:-)", ":-\\", ":'(", ":-Х", ":-Д"};
        String [] smileseng={":-)", ":-(", ";-)", ":-P", "=-O", ":-*", ":O", "B-)", ":-$", ":-!", ":-[", "O:-)", ":-\\", ":'(", ":-X", ":-D"};
        for(int i=0;i<smileseng.length;i++){
            do{
                sm=text.indexOf(smilesrus[i]);//проверяем вхождение символа смайла в тексте сообщения
                if(sm>=0){//если символ смайла есть
                    ImageSpan iconrus=new ImageSpan(this, R.drawable.s1, ImageSpan.ALIGN_BASELINE);
                    switch (i){//вводим необходимый смайл в iconrus и заменяем в тектсе сообщения символы смайла на ноль
                        case 0:
                            iconrus=new ImageSpan(this, R.drawable.s1, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-\\)","0");
                            break;
                        case 1:
                            iconrus=new ImageSpan(this, R.drawable.s2, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-\\(","0");
                            break;
                        case 2:
                            iconrus=new ImageSpan(this, R.drawable.s3, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(";-\\)","0");
                            break;
                        case 3:
                            iconrus=new ImageSpan(this, R.drawable.s4, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-П","0");
                            break;
                        case 4:
                            iconrus=new ImageSpan(this, R.drawable.s5, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst("=-Др","0");
                            break;
                        case 5:
                            iconrus=new ImageSpan(this, R.drawable.s6, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-\\*","0");
                            break;
                        case 6:
                            iconrus=new ImageSpan(this, R.drawable.s7, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":Др","0");
                            break;
                        case 7:
                            iconrus=new ImageSpan(this, R.drawable.s8, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst("Б-\\)","0");
                            break;
                        case 8:
                            iconrus=new ImageSpan(this, R.drawable.s9, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-$","0");
                            break;
                        case 9:
                            iconrus=new ImageSpan(this, R.drawable.s10, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-!","0");
                            break;
                        case 10:
                            iconrus=new ImageSpan(this, R.drawable.s11, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-\\[","0");
                            break;
                        case 11:
                            iconrus=new ImageSpan(this, R.drawable.s12, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst("Др:-\\)","0");
                            break;
                        case 12:
                            iconrus=new ImageSpan(this, R.drawable.s13, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-\\\\","0");
                            break;
                        case 13:
                            iconrus=new ImageSpan(this, R.drawable.s14, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":'\\(","0");
                            break;
                        case 14:
                            iconrus=new ImageSpan(this, R.drawable.s15, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-Х","0");
                            break;
                        case 15:
                            iconrus=new ImageSpan(this, R.drawable.s16, ImageSpan.ALIGN_BASELINE);
                            text=text.replaceFirst(":-Д","0");
                            break;
                    }
                    textsms.setSpan(iconrus, sm, sm+smilesrus[i].length(), Spannable.SPAN_COMPOSING);//вводим смайл в текст со смайлами
                    rez=true;
                }
                else sm=-1;
            }while(sm>=0);
        }
 
        return rez;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru