Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Метод .setText не показывает русские символы http://www.cyberforum.ru/android-dev/thread1448242.html
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Моя проблема в том, что при смене текста в TextView с помощью метода .setText вместо русских символов программа ставит вопросики. Я...
Программирование 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;... http://www.cyberforum.ru/android-dev/thread1448029.html
Программирование Android Редактирование .mtx файлов (перевод игры)
Пытаюсь перевести недавно вышедшую игру. В .apk все картинки с текстом предположительно лежат в файлах с таким построением Имя_файла.png(или .jpeg).mtx.mp3 Пробовал убирать .mp3 из названия и...
Программирование Android Дождаться завершения работы AsyncTask и выполнять код дальше
Помогите, пожалуйста. Мне нужно дождаться завершения работы AsyncTask и только потом выполнять код дальше. Я уже понял, что для этого нужно написать слушатель для AsyncTask, но у меня что-то не...
Программирование Android Размер кнопок http://www.cyberforum.ru/android-dev/thread1447800.html
Подскажите как начинающему, плиз) Во-первых, я не использую .9png . Для оформления кнопок использую отрисованные бэкграунды. Допустим меня устраивает размер кнопки по размеру бэкграунда, я...
Программирование Android Вылетает программа, написанная под Андроид Программа под Android Вылетает когда работает на переднем плане. Когда работает в фоновом то не вылетает) На сринах видно как программа загружает ОЗУ и Процессор, Подскажите из за чего?? И как это... подробнее

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

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

16.05.2015, 19:17. Просмотров 681. Ответов 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;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru