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

Чек большого количества togglebutton при прогрессе seekBar тормозит - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android SQlite Insert, delete, update http://www.cyberforum.ru/android-dev/thread1770475.html
Добрый день. Возник такой вопрос. Есть база с таблицей MailSettings. Она пустая. При первом сохранении настроек, все понятно (Insert). В этой таблице всегда должен быть один ряд: ID = 1, user = some_user, sender = some_sender, pass = some_pass, smtp = some_smtp, port = some_port, receiver = some_receiver Как реализовать в одном методе и создание и перезапись единственной записи? Мой...
Android Перевод между системами счисления Есть ли в adnroid встроенная функция перевода из одной системы счисления в другую? http://www.cyberforum.ru/android-dev/thread1770409.html
Android Не могу получить ссылку на Фрагмент
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WorkoutDetailFragment frag = (WorkoutDetailFragment)getFragmentManager().findFragmentById(R.id.frag_detail); frag.setWorkout(1); } }
Как запускать приложение при блокировке телефона? Android
Подскажите пожалуйста, как организовать мне запуск приложения при выключении телефона, точнее при его блокировке? То есть не в фоне запускать, а полностью форму показать. Отличный пример - это как часы Always On у Samsung Galaxy S7, которые запускаются при выключении телефона. Проблема в том что я даже не знаю в какую сторону смотреть. И ещё хотел спросить какие мне права нужно будет запросить...
Android Получить список файлов сервера указав путь http://www.cyberforum.ru/android-dev/thread1769614.html
Есть сервер на java рабочий. Принимает запросы от клиента и выводит список txt файлов прописанного в путе диска, затем по введенному названию тхт файла выводит его содержимое package test; import java.net.*; import java.io.*; import java.util.*; public class test {
Android Игровое приложение "Шашки" для мобильных устройств Какой алгоритм работы искусственного интеллекта используется для игры в шашки "человек против компьютера" и какие разделы математики касаются данной темы? подробнее

Показать сообщение отдельно
DJ_R_Maestro
0 / 0 / 0
Регистрация: 25.06.2016
Сообщений: 6

Чек большого количества togglebutton при прогрессе seekBar тормозит - Android

25.06.2016, 14:06. Просмотров 280. Ответов 10
Метки (Все метки)

Суть проблемы: есть 81 togglebutton у которых меняется background при помощи селектора. Эти кнопки чекаются за счет прогресса Seekbar. проблема в том, что не хватает времени на checked(true) (бекграунд батона соответственно то же не меняется). Т.е. я тяну SeekBar кнопки чекаются, только появляются пропуски чека. если тянуть SeekBar медленно то пропусков нету. почитал, что смена бекграунд трудоемкий процесс(а у меня по сути 81 батон и у каждого рисуется бекграунд при нажатии)

activity_main.xml
XML
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
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.roman.holdemsixplusapp.MainActivity"
    android:baselineAligned="false">
 
 
 
 
        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
 
          <ToggleButton
                android:background="@drawable/selectorpair"
                android:layout_weight="1"
                android:layout_width="0dp"
                android:layout_height="32dip"
                android:textOn="AA"
                android:textOff="AA"
                android:id="@+id/AA"
                android:layout_column="0"
                android:checked="false"
                android:layout_margin="3dip" />
 
Т.Д(много кнопок)
 
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="20dip">
 
        <SeekBar
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:max="80"
            android:progress="1"
            android:id="@+id/seekBar" />
 
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="@string/_0"
            android:textSize="20sp"
            android:id="@+id/tvProgress"
            />
    </LinearLayout>
 
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
        <EditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/resultSpectre"
            android:inputType="textCapCharacters" />
    </LinearLayout>
 
</TableLayout>
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
MainActivity.java
package com.example.roman.holdemsixplusapp;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.ToggleButton;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
 
 
public class MainActivity extends AppCompatActivity {
    private TextView textView;
    private SeekBar seekBar;
    private EditText resultSpectre;
    protected String txtCheckedButton;
 
 
    private List<ToggleButton> buttons = new ArrayList<>();
    private List<String> textButton = new ArrayList<>();
    private List <String> handRankList= Arrays.asList(
            "AA","KK","QQ","JJ","TT","99","AKs","88","AQs","AKo",
            "AJs","KQs","ATs","AQo","77","KJs","AJo","KTs","A9s",
            "KQo","ATo","QJs","66","A8s","QTs","KJo","K9s","A7s",
            "JTs","A9o","KTo","QJo","A6s","Q9s","A8o","QTo","K8s",
            "J9s","K9o","K7s","A7o","JTo","T9s","Q8s","K6s","A6o",
            "Q9o","J8s","K8o","T8s","Q7s","J9o","98s","K7o","Q6s",
            "T9o","J7s","Q8o","K6o","T7s","J8o","97s","87s","T8o",
            "J6s","Q7o","T6s","98o","Q6o","96s","86s","J7o","76s",
            "T7o","97o","87o","J6o","T6o","96o","86o","76o"
    );
 
    private List <Integer> BUTTON_IDS= Arrays.asList(
            R.id.AA, R.id.AKs, R.id.AQs, R.id.AJs, R.id.ATs, R.id.A9s, R.id.A8s, R.id.A7s, R.id.A6s,
            R.id.AKo, R.id.KK, R.id.KQs, R.id.KJs, R.id.KTs, R.id.K9s, R.id.K8s, R.id.K7s, R.id.K6s,
            R.id.AQo, R.id.KQo, R.id.QQ, R.id.QJs, R.id.QTs, R.id.Q9s, R.id.Q8s, R.id.Q7s, R.id.Q6s,
            R.id.AJo, R.id.KJo, R.id.QJo, R.id.JJ, R.id.JTs, R.id.J9s, R.id.J8s, R.id.J7s, R.id.J6s,
            R.id.ATo, R.id.KTo, R.id.QTo, R.id.JTo, R.id.TT, R.id.T9s, R.id.T8s, R.id.T7s, R.id.T6s,
            R.id.A9o, R.id.K9o, R.id.Q9o, R.id.J9o, R.id.T9o, R.id.p99, R.id.s98, R.id.s97, R.id.s96,
            R.id.A8o, R.id.K8o, R.id.Q8o, R.id.J8o, R.id.T8o, R.id.o98, R.id.p88, R.id.s87, R.id.s86,
            R.id.A7o, R.id.K7o, R.id.Q7o, R.id.J7o, R.id.T7o, R.id.o97, R.id.o87, R.id.p77, R.id.s76,
            R.id.A6o, R.id.K6o, R.id.Q6o, R.id.J6o, R.id.T6o, R.id.o96, R.id.o86, R.id.o76, R.id.p66
    );
 
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        seekBar = (SeekBar) findViewById(R.id.seekBar);
        textView = (TextView) findViewById(R.id.tvProgress);
        resultSpectre = (EditText) findViewById(R.id.resultSpectre);
 
 
        buttons = new ArrayList<>(BUTTON_IDS.size());
        textButton = new ArrayList<>();
 
 
 
        int count=0;
        while(count<BUTTON_IDS.size()) {
 
 
 
            final ToggleButton toggleButton = (ToggleButton) findViewById(BUTTON_IDS.get(count));
            buttons.add(toggleButton);
            count++;
            if (toggleButton != null) {
                toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        if (isChecked) {
 
                            txtCheckedButton = toggleButton.getText().toString();// переменная в которой хранится текст нажатой кнопки
                            textButton.add(txtCheckedButton); // происходит добавление в переменную листа текста нажатой кнопки (понадобится для последующего вывода
                            //спектра )
 
                        } else {
                            txtCheckedButton = toggleButton.getText().toString();
                            DeleteToStrBtn(txtCheckedButton, textButton);
 
                        }
                        LoadToStrBtn(textButton); //метод вывода спектра в текст
                    }
 
                });
            }
 
 
 
 
 
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
 
                textView.setText(String.valueOf(Progress100() + "%"));
                String rank=handRankList.get(progress);
 
                int count2=0;
                while (count2<BUTTON_IDS.size()){
 
 
 
                    if (rank.equals(buttons.get(count2).getTextOn().toString())){
                        buttons.get(count2).setChecked(true);
                    }
                    count2++;
                }
            }
 
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
 
            }
 
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
 
            }
        });
 
    }
    }
 
 
    private void LoadToStrBtn(List<String> textButton) {
        String all = "";
        for (String tb : textButton) {
            all = all + tb + "+";
 
        }
        resultSpectre.setText(all);
    }   //метод вывода спектра в текст
 
    private void DeleteToStrBtn (String txtCheckedButton, List <String> textButton){
        if (textButton.contains(txtCheckedButton)){
            textButton.remove(txtCheckedButton);
        }
 
 
    }
 
 
    private int Progress100 (){
        int progr=0;
        progr=this.seekBar.getProgress()*100/80;
                return progr;
    } // метод вывода в строку процента прогресс бара вместо 82% - 100%
 
 
        }
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
selectoroffsuited
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorOnButtonSpectre" android:state_checked="true"></item>
    <item android:drawable="@color/colorTogBuOffSu" android:state_checked="false"></item>
</selector>
 
selectorpair
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorOnButtonSpectre" android:state_checked="true"></item>
    <item android:drawable="@color/colorTogBuPair" android:state_checked="false"></item>
</selector>
 
selectorsuited
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorOnButtonSpectre" android:state_checked="true"></item>
    <item android:drawable="@color/colorTogBuSu" android:state_checked="false"></item>
</selector>
http://savepic.ru/10227797.png
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru