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

Spannable - цветной текст - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Приложение по публикации фото http://www.cyberforum.ru/android-dev/thread1734354.html
Здравствуйте, я, пока что, не программист на андроид. Однако мы создаем сайт, на котором пользователи будут публиковать фото. Для этого хотим сделать приложение, которое может делать только одну вещь - фотографировать и отправлять эти фото с небольшим комментарием на наш сайт. То есть интерфейс простой - запустил приложение, прошел регистрацию/вход, сделал фото и нажал кнопку "Отправить на...
Android Запись массива в TextView Есть двумерный массив: int a в нём записаны "0" и "1" Я хочу вывести его на экран, но выводится только один "0". ... TextView table; ... String aa = ""; aa+=(a + "\n"); http://www.cyberforum.ru/android-dev/thread1734236.html
Читаются ли контакты с Viber Android
Есть контент провайдер content://com.viber.provider.vibercontacts но ясно без пермишена не работает, есть ли пермишен в интернете или они "защищают )" данные пользователя и доступа к контактам нет?
Android Открытие apk в андроид студио
Каким способом можно открыть apk в программе? просто надо проверить антивирус, а он засекает только тест файл apk при его запуске.
Android Ошибка с использованием нескольких Activity http://www.cyberforum.ru/android-dev/thread1734160.html
Здравствуйте, недавно только начал программировать на android и столкнулся с такой проблемой - вроде-бы делаю все по официальному гайду, но код не работает. Главный активити: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
Android Создание app-release.apk для публикации в маркете В общем, все сделал по документации. Android Studio сообщает о том, что apk был успешно собран и предлагает мне перейти в соответствующую папку. Я перехожу туда, а там нет подписанного apk файла. Там вообще нет apk файла. Есть только в app/build/outputs/apk 2 debug файла. Почему нет готового для маркета apk? подробнее

Показать сообщение отдельно
Паблито
резкий
1960 / 1695 / 525
Регистрация: 12.05.2014
Сообщений: 6,046
Завершенные тесты: 1
20.05.2016, 16:22     Spannable - цветной текст
я тут немного подняпрягся и сделал кастомный EditText, на мой взгляд это удобнее чем городить все методы где-то в активити или фрагменте
1. сам класс, можно особо не вчитываться, магия уже настроена
Кликните здесь для просмотра всего текста
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
import android.content.Context;
import android.text.Editable;
import android.text.Spannable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.text.style.BackgroundColorSpan;
import android.util.AttributeSet;
import android.widget.EditText;
 
import java.util.ArrayList;
 
public class CustomEditText extends EditText {
 
    private final ArrayList<Integer> posList = new ArrayList<>();
    private String highlightText;
    private int color;
 
    public CustomEditText(Context context) {
        super(context);
        init();
    }
 
    public CustomEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }
 
    private void init() {
        addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
 
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
 
            @Override
            public void afterTextChanged(Editable s) {
                posList.clear();
                if (s.length() > 0 && !TextUtils.isEmpty(highlightText)) {
                    findOccurrences();
                }
                if (!posList.isEmpty()) highlight(s);
            }
        });
    }
 
    private void findOccurrences() {
        String text = getText().toString();
        int index = text.indexOf(highlightText);
        while (index >= 0) {
            posList.add(index);
            index = text.indexOf(highlightText, index + 1);
        }
    }
 
    private void highlight(Spannable where) {
        for (Integer pos : posList) {
            int spanStart = pos;
            int spanEnd = spanStart + highlightText.length();
            where.setSpan(new BackgroundColorSpan(color), spanStart, spanEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        }
    }
 
    public void setHighlightText(String highlightText, int color) {
        this.highlightText = highlightText;
        this.color = color;
    }
}

2. кусок активити, где показано как это вызывается
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        CustomEditText editText = (CustomEditText) findViewById(R.id.editText);
        editText.setHighlightText("hello", Color.RED);
    }
}

3. пример разметки, там где указан кастомный EditText надо будет поменять имя пакета на свое
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/topAppContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <com.example.mytestapplication.CustomEditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
 
</FrameLayout>

4. PROFIT
Spannable - цветной текст
 
Текущее время: 02:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru