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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Muhammad97
10 / 10 / 1
Регистрация: 10.11.2013
Сообщений: 238
#1

Проблемы с отрисовкой экрана - Программирование Android

21.05.2014, 04:17. Просмотров 460. Ответов 0
Метки нет (Все метки)

Здравствуйте. Написал небольшую программу, в которой пользователь может задавать тексту: цвет, размер, цвет фона. При смене размера текста экран отрисовать неправильно, вот скрины:
Проблемы с отрисовкой экрана
Проблемы с отрисовкой экрана

Вот код:

MainActivity.java
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
package com.mycompany.myapp;
 
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
import android.view.View.*;
import android.graphics.*;
import android.nfc.*;
import android.util.*;
import android.content.res.*;
 
public class MainActivity extends Activity implements OnClickListener { 
    
        
    Button knopka1;
    Button knopka2;
    Button knopka3;
    Button knopka4;
    Button knopka5;
    Button knopka6;
    Button knopka7;
    Button knopka8;
    Button knopka9;
    Button settext;
    TextView text;
    CheckBox chk1;
    CheckBox chk2;
    CheckBox chk3;
    EditText edtext;
    String chk1s;
    String chk2s;
    String chk3s;
    String sb;
    SeekBar sbtext;
    LinearLayout bgtext;
    
    public static final String TAG = "MyLogs";
    
    @Override
    public void reset() {
        text.setText(R.string.text);
        bgtext.setBackgroundResource(R.color.black);
        text.setTextColor(getResources().getColor(R.color.white));
        text.setTextSize(16);
    }
    
    //Устанавливаем значение integer
    
    int ts1 = 20;
    int ts2 = 40;
    int ts3 = 60;
    
 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        chk1s = getString(R.string.on);
        chk2s = getString(R.string.on);
        chk3s = getString(R.string.on);
        
        //Присваиваем кнопкам их id
        Log.d(TAG, "Присваиваем кнопкам их id");
        
        knopka1 = (Button) findViewById(R.id.knopka1);
        knopka2 = (Button) findViewById(R.id.knopka2);
        knopka3 = (Button) findViewById(R.id.knopka3);
        knopka4 = (Button) findViewById(R.id.knopka4);
        knopka5 = (Button) findViewById(R.id.knopka5);
        knopka6 = (Button) findViewById(R.id.knopka6);
        knopka7 = (Button) findViewById(R.id.knopka7);
        knopka8 = (Button) findViewById(R.id.knopka8);
        knopka9 = (Button) findViewById(R.id.knopka9);
        settext = (Button) findViewById(R.id.settext);
        edtext = (EditText) findViewById(R.id.edtext);
        
        //Присваиваем тексту его id
        Log.d(TAG, "Присваиваем тексту его id");
        
        text = (TextView) findViewById(R.id.text);
        
        //Присваиваем чекбоксам их id
        Log.d(TAG, "Присваиваем чекбоксам их id");
        
        chk1 = (CheckBox) findViewById(R.id.chk1);
        chk2 = (CheckBox) findViewById(R.id.chk2);
        chk3 = (CheckBox) findViewById(R.id.chk3);
        
    //Присваиваем LinearLayout его id
        Log.d(TAG, "Присваиваем LinearLayout его id");
        
        bgtext = (LinearLayout) findViewById(R.id.bgtext);
        
        
        //присваиваем кнопкам текст
        Log.d(TAG, "Устанавливаем значение integer");
        
        knopka1.setText(R.string.red);
        knopka2.setText(R.string.green);
        knopka3.setText(R.string.blue);
        knopka4.setText(R.string.red);
        knopka5.setText(R.string.green);
        knopka6.setText(R.string.blue);
        knopka7.setText(R.string.ts1);
        knopka8.setText(R.string.ts2);
        knopka9.setText(R.string.ts3);
        settext.setText(R.string.write);
        text.setText(R.string.text);
        
        sbtext = (SeekBar) findViewById(R.id.sbtext);
        
        //Присваиваем кнопкам обработчики
        Log.d(TAG, "Присваиваем кнопкам обработчики");
        
        knopka1.setOnClickListener(this);
        knopka2.setOnClickListener(this);
        knopka3.setOnClickListener(this);
        knopka4.setOnClickListener(this);
        knopka5.setOnClickListener(this);
        knopka6.setOnClickListener(this);
        knopka7.setOnClickListener(this);
        knopka8.setOnClickListener(this);
        knopka9.setOnClickListener(this);
        settext.setOnClickListener(this);
        
        //Присваиваем чекбоксам обработчики
        Log.d(TAG, "Присваиваем чекбоксам обработчики");
        
        chk1.setOnClickListener(this);
        chk2.setOnClickListener(this);
        chk3.setOnClickListener(this);
        
        sbtext.setOnSeekBarChangeListener(sbtextlstnr);
        
        
            }
            
            @Override 
            public void onClick(View v) {
                
                
                
                switch (v.getId()) {
                    
                    //Проверка чекбоксов
            
                    
                    case R.id.chk1:
                        Log.d(TAG, "Проверка чекбоксов");
                        if (chk1.isChecked() == true)
                        {
                            knopka1.setEnabled(true);
                            knopka2.setEnabled(true);
                            knopka3.setEnabled(true);
                            chk1s = getString(R.string.on);
                            break;
                        }
                        else if (chk1.isChecked() == false)
                        {
                            knopka1.setEnabled(false);
                            knopka2.setEnabled(false);
                            knopka3.setEnabled(false);
                            chk1s = getString(R.string.off);
                            break;
                        };
    
                    case R.id.chk2:
                        if (chk2.isChecked() == true)
                        {
                            knopka4.setEnabled(true);
                            knopka5.setEnabled(true);
                            knopka6.setEnabled(true);
                            chk2s = getString(R.string.on);
                            break;
                        }
                        else if (chk2.isChecked() == false)
                        {
                            knopka4.setEnabled(false);
                            knopka5.setEnabled(false);
                            knopka6.setEnabled(false);
                            chk2s = getString(R.string.off);
                            break;
                        };
                    
                    case R.id.chk3:
                        if (chk3.isChecked() == true)
                        {
                            knopka7.setEnabled(true);
                            knopka8.setEnabled(true);
                            knopka9.setEnabled(true);
                            chk3s = getString(R.string.on);
                            break;
                        }
                        else if (chk3.isChecked() == false)
                        {
                            knopka7.setEnabled(false);
                            knopka8.setEnabled(false);
                            knopka9.setEnabled(false);
                            chk3s = getString(R.string.on);
                            break;
                        };
                        
                        //Кнопки цвета текста
                        Log.d(TAG, "Кнопки цвета текста");
                        
                    case R.id.knopka1:
                        text.setTextColor(getResources().getColor(R.color.red));
                        break;
                        
                    case R.id.knopka2:
                        text.setTextColor(getResources().getColor(R.color.green));
                        break;
                        
                    case R.id.knopka3:
                        text.setTextColor(getResources().getColor(R.color.blue));
                        break;
                        
                        //Кнопки цвета фона
                    case R.id.knopka4:
                        bgtext.setBackgroundResource(R.color.red);
                        break;
 
                    case R.id.knopka5:
                        bgtext.setBackgroundResource(R.color.green);
                        break;
 
                    case R.id.knopka6:
                        bgtext.setBackgroundResource(R.color.blue);
                    break;
                        
                        //Кнопки размера текста
                        
                    case R.id.knopka7:
                        text.setTextSize(ts1);
                        break;
 
                    case R.id.knopka8:
                        text.setTextSize(ts2);
                        break;
 
                    case R.id.knopka9:
                        text.setTextSize(ts3);
                        break;
                        
                    case R.id.settext:
                        
                        String strlng = edtext.getText().toString();
                        
                        //Присваиваем TextView текст из EditText
                        if (strlng.length() == 0) {
                            
                            Toast.makeText(this, "Ошибка: текст не может быть пустым", Toast.LENGTH_LONG).show();
                            
                        }
                        
                        else {
                        
                        text.setText(edtext.getText().toString());
                        //Выводим всплывающее сообщение "Текст изменен на"
                        Toast.makeText(this, "Текст изменен на '" + edtext.getText().toString()+"'", Toast.LENGTH_LONG).show();
                        }
                }
                }
                
            @Override
            public boolean onCreateOptionsMenu(Menu menu) {
                // TODO Auto-generated method stub
 
                menu.add(0, 1, 1, "Сброс");
                menu.add(0, 2, 2, "Информация");
 
                return super.onCreateOptionsMenu(menu);
            
}
 
            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                
                
                
                if (item.getItemId() == 1) {
                    
                    reset();
                    
                    }
                if (item.getItemId() == 2) {
                
                //Собираем информацию 
                sb = "Цвет текста: " + String.valueOf(chk1s) + "\n" +"Цвет фона: " + String.valueOf(chk2s) + "\n" + "Размер текста: " + String.valueOf(chk1s);
                
                //При выборе пункта выводим общую информацию по состоянии приложения
                Toast.makeText(this, sb, Toast.LENGTH_SHORT).show();
                
                }
                
                return super.onOptionsItemSelected(item);
                
            }
            
    private SeekBar.OnSeekBarChangeListener sbtextlstnr = new SeekBar.OnSeekBarChangeListener() {
 
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {  
        
        }
 
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {         
 
        }
 
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                                      boolean fromUser) {
          
            text.setTextSize(progress);
                                          
        }
    };  
            
}
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
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout 
        android:id="@+id/linearLayout1" 
        android:layout_width="match_parent" 
        android:orientation="horizontal" 
        android:layout_height="wrap_content"> 
        <EditText 
            android:layout_height="wrap_content" 
            android:layout_width="wrap_content" 
            android:layout_weight="1" 
            android:id="@+id/edtext" 
            android:fadeScrollbars="true"> 
        </EditText> 
        <Button 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="" 
            android:id="@+id/settext"> 
        </Button> 
    </LinearLayout>
 
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:gravity="center"
        >
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Цвет фона"
            android:checked="true"
            android:gravity="center"
            android:id="@+id/chk1"
        >
        </CheckBox>
    </LinearLayout>
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
        >
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/knopka1"
            android:layout_weight="1"
            >
            </Button>
 
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/knopka2"
            android:layout_weight="1"
            ></Button>
 
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/knopka3"
            android:layout_weight="1">
            </Button>
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:gravity="center"
    >
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Цвет фона"
            android:checked="true"
            android:gravity="center"
            android:id="@+id/chk2"
        >
        </CheckBox>
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/knopka4"
        android:layout_weight="1">
        ></Button>
 
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/knopka5"
        android:layout_weight="1">
        ></Button>
 
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/knopka6"
        android:layout_weight="1">
        ></Button>
    </LinearLayout>
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:gravity="center"
    >
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Размер текста"
            android:checked="true"
            android:gravity="center"
            android:id="@+id/chk3"
        >
        </CheckBox>
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    >
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/knopka7"
            android:layout_weight="1">
            ></Button>
 
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/knopka8"
            android:layout_weight="1">
            ></Button>
 
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/knopka9"
            android:layout_weight="1">
            ></Button>
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    >
        <SeekBar
            android:layout_height="wrap_content"
            android:layout_width="match_parent"
            android:max="60"
            android:progress="30"
            android:layout_marginTop="20dp"
            android:id="@+id/sbtext">
        </SeekBar>
    </LinearLayout>
    
    <LinearLayout
        android:id="@+id/bgtext"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:orientation="horizontal"
    >
 
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:id="@+id/text"/>
    </LinearLayout>
</LinearLayout>
String.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">MyApp</string>
    <string name="red">Красный</string>
    <string name="green">Зеленый</string>
    <string name="blue">Синий</string>
    <string name="text_color">Цвет текста</string>
    <string name="bg_color">Цвет фона</string>
    <string name="text_size">Размер текста</string>
    <string name="info">Информация</string>
    <string name="text">Текст</string>
    <string name="write">Написать</string>
    <string name="ts1">20</string>
    <string name="ts2">40</string>
    <string name="ts3">60</string>
    <string name="on">Включен</string>
    <string name="off">Выключен</string>
</resources>
Color.xml

XML
1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red">#ff0000</color>
    <color name="green">#00ff00</color>
    <color name="blue">#0000ff</color>
    <color name="black">#000000</color>
    <color name="white">#ffffff</color>
</resources>
Android 4.4.2
Компилятор: AIDE

В чем проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2014, 04:17     Проблемы с отрисовкой экрана
Посмотрите здесь:

Проблемы с разрешением экрана - Программирование Android
Добрый день форумчане давно не заходил на ваш сайт))Рад вашей помощи)) ImageView iv = new ImageView(poisk.this); ...

Поворот куба сначала вокруг оси y с.к. экрана потом вокруг оси x с.к. экрана - Программирование Android
Предыстория: Я пишу 3D игру и там соответственно нужно производить поворот тела в пространстве. нужно делать 2 поворота по горизонтали и...

Разрешение экрана - Программирование Android
Привет. Суть такая: допустим есть GridView, открываю приложение на разных девайсах с разным разрешением экрана. На одном открывается...

Включение экрана - Программирование Android
AlarmManager инициирует вызов активити, но если экран не включен( стоит на блоке) то ничего не видно. как включить экран?

Ориентация экрана - Программирование Android
Здравствуйте!Хотелось бы услышать совета знающих людей:) Имеется Активити с открытой БД и Курсором...Необходимо сделать так, что бы...

Обновление экрана - Программирование Android
В стандартных функциях есть возможность посмотреть, как обновляется экран. Было бы классно это использовать в коде (нужно выполнять...

Размеры экрана - Программирование Android
Захотел сделать подгон кнопок под разрешение экрана. Погуглил на эту тему, сделал новый класс. Вот что получилось. Ошибка в ...

ориентация экрана - Программирование Android
Как сделать так чтобы в тоже время запретить вертикальную ориентацию активити. Но в горизонтальном положении его можно было поворачивать...

слайдинг экрана - Программирование Android
Здравствуйте, кодеры. есть вопрос. есть приложения c несколькими окнами создана на основе tabhost'a. то есть по сути окно одно но с...

Скриншот экрана - Программирование Android
Здраствуйте, мне нужно зделать програмно скриншот екрана... я нашол...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru