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

Генерация цветовых экранов - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Почему не работает GET запрос? http://www.cyberforum.ru/android-dev/thread1659028.html
Maxens, А что происходит? Ошибка? Исключение?
Android Векторное изображение Как подключить векторное изображение в android studio ? http://www.cyberforum.ru/android-dev/thread1659023.html
Android Android и PostgreSQL
Доброго времени суток, Мы создали PostgresSQL базу создали в неё тэйбл, использовали Spring фрэйморк, теперь как связать Android Studio с данной базой?, любые советы будут кстати.
Android Как заставить setText(); выводить строку а не ее название?
Добрый вечер! Необходимо выводить строку из strings.xml, которая будет меняться в зависимости от переменной i. В данный момент просто выводится "q1" потом "q2" и "q3". strings.xml : <string name="q1">Текст_1</string> <string name="q2">Текст_2</string> <string name="q3">Текст_3</string> Вот кусок кода с проблемой:
Android Как правильно распарсить Json? http://www.cyberforum.ru/android-dev/thread1658805.html
protected String doInBackground(String... args) { // Будет хранить параметры List<NameValuePair> params = new ArrayList<>(); // получаем JSON строк с URL JSONObject json = jParser.makeHttpRequest("тут ссылка на сайт", "GET", params); try {
Android Webview на фрагменте Всем привет! Есть проблемка, может кто сталкивался... Есть фрагмент с webview. Меняю размер шрифта в webview, и меняется только размер на текущем (созданном) фрагменте. Как обратиться к остальным и поменять там шрифт? подробнее

Показать сообщение отдельно
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
12.02.2016, 11:35     Генерация цветовых экранов
Pir12345, в общем так и не понял каким способом генерируются цвета. Если этот генератор принимает массив чисел ({1, 2, 3}) и выдает что-то на подобии {1,2,3},{1,3,2},{312}... - можно вместо цифр посылать туда сразу цвета т.к. они представлены в int. Если все так - то вот кастомная вьюшка, которая моргает:
Кликните здесь для просмотра всего текста
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
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.View;
 
public class BlinkingView extends View {
 
    private int mColorIndex = -1;
    private int[] mColors;
    private long mDuration;
 
    public BlinkingView(Context context) {
        super(context);
    }
 
    public BlinkingView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public BlinkingView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
 
    public void startBlinking(int[] colors, long duration) {
        mColorIndex = 0;
        mColors = colors;
        mDuration = duration;
        changeColor();
    }
 
    public void startBlinking(int[][] colors, long duration) {
        if (colors.length < 1) return;
        int size = colors.length * colors[0].length;
        int[] colorsArray = new int[size];
 
        for (int i = 0; i < colors.length; i++) {
            for (int j = 0; j < colors[i].length; j++) {
                colorsArray[i * colors[i].length + j] = colors[i][j];
            }
        }
 
        startBlinking(colorsArray, duration);
    }
 
    private void changeColor() {
        invalidate();
        postDelayed(new Runnable() {
            @Override
            public void run() {
                if (mColorIndex < mColors.length - 1) {
                    mColorIndex++;
                    changeColor();
                } else {
                    mColorIndex = -1;
                    invalidate();
                }
            }
        }, mDuration);
    }
 
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        int color;
        if (mColorIndex == -1) {
            color = Color.WHITE;
        } else {
            color = mColors[mColorIndex];
        }
        canvas.drawColor(color);
    }
}


Можно просто скопировать весь код в новый класс с именем BlinkingView. У этой вьюшки есть метод startBlinking, который принимает либо int[] и long, либо int[][] и long. В обоих случаях первый параметр массив цветов, а второй длительность каждого цвета. Если послать туда двумерный массив он просто перегоняется в одномерный, а дальше все так же. Но тут нужно, чтобы все "строки" в массиве были одной длины, иначе будет ошибка. Используется так:

Java
1
2
3
4
int[][] colors = new int[][] {{0xFFFF0000, 0xFF00FF00, 0xFF0000FF}, {0xFFFF0000, 0xFF00FF00, 0xFF0000FF}, {0xFFFF0000, 0xFF00FF00, 0xFF0000FF}};
//это просто произвольный массив цветов, у себя используйте тот, что получается сейчас.
 
((BlinkingView) findViewById(R.id.blinkingView)).startBlinking(colors, 3000);
 
Текущее время: 23:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru