Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Программирование Android Какие есть учебные курсы, задачи, проекты по Android для начинаюших https://www.cyberforum.ru/ android-dev/ thread962927.html
Здравствуйте, подскажите какие есть качественные учебные курсы-сайты направленные на изучения Android программирования с задачами и проектами разных планов. Что бы было можно в процессе практики (решения актуальных задач) получить хорошие навыки в программирование под Android и в последствие претендовать на должность Junior Android Developer. Теория и чтение книг и статей документаций конечно...
LinearLayout при вызове клавиатуры остается на месте Программирование Android
Есть приложение, где LinearLayout в роли нижнего бара, где находятся кнопки. При вызове клавиатуры нужно, что бы он оставался на своей позиции - внизу, а не перемещадся на верх вместе с клавиатурой. Скрины
Программирование Android xml шейпы https://www.cyberforum.ru/ android-dev/ thread962849.html
Всем. У меня есть кнопка ImageButton <ImageButton android:id="@+id/shot" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical" android:background="@drawable/shot_unpressed" android:tag="shot" />
Программирование Android Изменение размера изображений в WebView https://www.cyberforum.ru/ android-dev/ thread962757.html
Делаю небольшой ридер новостей и столкнулся с следующей проблемой. При загрузке новости в WebView картинка уезжает за пределы экрана и приходится горизонтально скроллить чтоб ее просмотреть. Запускал WebView с параметром webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); но в этом случае размер текста становится не читаемым и приходится увеличивать страничку (о5...
Как сделать приложение полноэкранным и убрать вспомогательные кнопки "назад, главный экран." Программирование Android
Здравствуйте, Можно ли сделать приложение на весь экран, и убрать от туда вспомогательные кнопки "Назад, Главное окно..." или же хотя бы отключить их? Прикрепил файл для подробности пожалуйста посмотрите все станет ясно. Заранее благодарю за все ответы.
Программирование Android Прочитать значение настройки из ListPreference Есть настройка: <ListPreference android:defaultValue="1" android:entries="@array/LoadDataArray" android:entryValues="@array/LoadDataValues" android:key="SourceData" android:summary="@string/SourceData_summary" android:title="@string/SourceData" /> https://www.cyberforum.ru/ android-dev/ thread962658.html
Программирование Android SQLite, удалить все ссылки (constraints) Есть 2 таблицы. Допустим "Предприятие" и "Работник". Как сделать, что при удалении записи из Предприятие, автоматически удалялись все записи из Работник? В обычном SQL было ON DELETE CASCADE. Но в SQLite это не работает. Или придется в ручную запрашивать все айди и потом в цикле удалять их по одному? https://www.cyberforum.ru/ android-dev/ thread962610.html Доступ в БД через авторизационный сервер Программирование Android
Добрый день. Мне необходимо разработать андроид приложение с GUI. Суть в том, что я должен ввести логин и пароль, и тогда мне будет выведен список расписания поездов. Я могу кликнуть на поезд, что будет означать, что я забронировал себе место. Для тренировки я просто сделал запрос из БД(локальный сервер) на JAVA, с этим проблем нет! Я правильно понимаю, что мне нужно сделать андроид...
Программирование Android Socket AndroiD В общем хочу написать сокет (TCP клиент) на андрюху. http://myandroidsolutions.blogspot.ru/2012/07/android-tcp-connection-tutorial.html Вот отсюда в принципе отправка работает (русские не передаются, крякозябры получаю, но и НЕ оч надо). Но както странно ведет себя приложение. Не завершается, приходится через диспетчер останавливать и заного коннектиться, если сервер закрывал(TCP сервер... https://www.cyberforum.ru/ android-dev/ thread962552.html Программирование Android Найти номер недели в году или по Unix необходимо узнать номер недели в году либо просто сколько недель прошло от 1/1/1970 в java.util.Date такого метода нет(( мб есть альтернативы? https://www.cyberforum.ru/ android-dev/ thread962526.html
Создание нового апк файла на основе сущетсвующего проекта Программирование Android
У меня на андроиде уже установлено одно приложение, для которого я собирал апк. Затем мне нужно было внести визуальные изменения в проекте и создать новый апк файл, чтобы иметь 2 приложения на андроиде. Изменения внес. Но установить я не могу приложение. А при выдаче ошибки оповещает о том, что "Уже установлен пакет с таким именем и другой подписью". Название пакета менял, но не помогло.
Программирование Android База данных Android из Eclipse Доброго времени суток. Читаю литературу по БД для андроид, и наткнулся на такую вещь, чтобы создать БД нужно ее полностью прописать в коде, создаю ее как бы при вызове приложения. Можно
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 4
0

OnTouchEvent и onDraw не меняют значение переменной - Программирование Android - Ответ 5102912

26.09.2013, 16:05. Показов 689. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Надо выкладывать все классы?
Суть в том, что ernum[0], menupointer[i].get_x()(как пример. Также любая заданная переменная) не меняется в OnTouchEvent и в onDraw. Если что - пытаюсь получить их значения не в MenuC, а в MainActivity.

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
package com.example.zadanie2;
 
import java.util.Random;
 
import com.example.zadanie2.MainActivity;
import com.example.zadanie2.R;
import com.example.zadanie2.DatabaseE;
 
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
 
 
public class MenuC extends View {
    
 
    private DatabaseE dbDatabaseEE = null;
    
    private int center_X = 0;
    private int center_Y = 0;
 
    private Bitmap menuback = null;
    private int menuback_center_X = 0;
    private int menuback_center_Y = 0;
    private static int menuback_X = 0;
    private int menuback_Y = 0;
    private int menuback_height = 0;
    private int menuback_width = 0;
    private int menuback_radius = 0;
    private int menuback_border = 0;
    boolean[] checktrue;
    int intervalel = 100; // расстояние между шарами элементов(1\2)
    int intervalfi = 20;//ответные шары соответсвенно(1\2)
    int inspace = 40;//между стоками шаров
    int sdvigx = 0;
    int sdvigy = 0;//сдвиги по х у 
    //остальное  - чисто код, не пыхти
    private boolean isselected = false;
    
    //private MenuCPointer menupointer = null;
    MenuCItem[] menuitems = new MenuCItem[6];
    MenuCPointer[] menupointer = new MenuCPointer[6];
    int i = 5;
    int k = 0;
    
    
    int[] ernum = new int[6];
    
    
    private int over_engagement = 1; //how smuch distance to set over item true
    private int click_engagement = 1; //how much distanc to set click item true
    public MenuC(Context context) {
        super(context);
        setFocusable(true); //necessary for getting the touch events
        BitmapFactory.Options opts = new BitmapFactory.Options();
        opts.inJustDecodeBounds = true;             
                        
        center_X = ((MainActivity)this.getContext()).get_screenWidth()/2;
        center_Y = ((MainActivity)this.getContext()).get_screenHeight()/2;
 
        
 
        menupointer[0] = new MenuCPointer(context, R.drawable.f1, R.drawable.f1_h, 10, 0);
        menupointer[0].set_homeposition(new Point(
                center_X - intervalfi/2 - intervalfi - 3*menupointer[0].get_width(),
                center_Y - inspace - menupointer[0].get_width()));
        menupointer[0].set_position(
                menupointer[0].get_homepoint().x,
                menupointer[0].get_homepoint().y);
        
        menupointer[1] = new MenuCPointer(context, R.drawable.f2, R.drawable.f2_h, 10, 1);
        menupointer[1].set_homeposition(new Point(
                center_X - intervalfi - 2*menupointer[0].get_width(),
                center_Y - inspace - menupointer[0].get_width()));
        menupointer[1].set_position(
                menupointer[1].get_homepoint().x,
                menupointer[1].get_homepoint().y);
        
        menupointer[2] = new MenuCPointer(context, R.drawable.f3, R.drawable.f3_h, 10, 2);
        menupointer[2].set_homeposition(new Point(
                center_X - menupointer[0].get_width() - intervalfi/2,
                center_Y - inspace - menupointer[0].get_width()));
        menupointer[2].set_position(
                menupointer[2].get_homepoint().x,
                menupointer[2].get_homepoint().y);
        
        menupointer[3] = new MenuCPointer(context, R.drawable.f4, R.drawable.f4_h, 10, 3);
        menupointer[3].set_homeposition(new Point(
                center_X + intervalfi/2,
                center_Y - inspace - menupointer[0].get_width()));
        menupointer[3].set_position(
                menupointer[3].get_homepoint().x,
                menupointer[3].get_homepoint().y);
        
        menupointer[4] = new MenuCPointer(context, R.drawable.f5, R.drawable.f5_h, 10, 4);
        menupointer[4].set_homeposition(new Point(
                center_X + menupointer[0].get_width() + intervalfi,
                center_Y - inspace - menupointer[0].get_width()));
        menupointer[4].set_position(
                menupointer[4].get_homepoint().x,
                menupointer[4].get_homepoint().y);
        
        menupointer[5] = new MenuCPointer(context, R.drawable.f6, R.drawable.f6_h, 10, 5);
        menupointer[5].set_homeposition(new Point(
                center_X + 2*menupointer[0].get_width() + intervalfi/2 + intervalfi,
                center_Y - inspace - menupointer[0].get_width()));
        menupointer[5].set_position(
                menupointer[5].get_homepoint().x,
                menupointer[5].get_homepoint().y);
        
        menuitems[0] = new MenuCItem(context, R.drawable.f1, R.drawable.f1_h, 10, 0, 1);
        menuitems[0].set_position(
                center_X - intervalfi/2 - intervalfi - 3*menuitems[0].get_width(),
                center_Y);
        
        menuitems[1] = new MenuCItem(context, R.drawable.f2, R.drawable.f2_h, 10, 1, 2);
        menuitems[1].set_position(
                center_X - intervalfi - 2*menuitems[0].get_width(),
                center_Y);
        
        menuitems[2] = new MenuCItem(context, R.drawable.f3, R.drawable.f3_h, 10, 2, 3);
        menuitems[2].set_position(
                center_X - menuitems[0].get_width() - intervalfi/2,
                center_Y);
        
        menuitems[3] = new MenuCItem(context, R.drawable.f4, R.drawable.f4_h, 10, 3, 4);
        menuitems[3].set_position(
                center_X + intervalfi/2,
                center_Y);
        
        
        menuitems[4] = new MenuCItem(context, R.drawable.f5, R.drawable.f5_h, 10, 4, 5);
        menuitems[4].set_position(
                center_X + menuitems[0].get_width() + intervalfi,
                center_Y);
        
        menuitems[5] = new MenuCItem(context, R.drawable.f6, R.drawable.f6_h, 10, 5, 6);
        menuitems[5].set_position(
                center_X + 2*menuitems[0].get_width() + intervalfi/2 + intervalfi,
                center_Y);
        ernum[0] = 3;
    }
    
 
    
    public boolean onTouchEvent(MotionEvent event) {
        
        //get current touch position
        int eventaction = event.getAction(); 
        int current_x = (int)event.getX(); 
        int current_y = (int)event.getY();
        
        switch (eventaction ) { 
            
            case MotionEvent.ACTION_DOWN:
                // check if the finger is on the pointer
                double menupointer_x[];
                menupointer_x = new double[6];
                double menupointer_y[];
                menupointer_y = new double[6];
                double pointer_radius[];
                pointer_radius = new double[6];
                for(int i3 = 0; i3<6;i3++)
                {   
                    menupointer_x[i3] = menupointer[i3].get_x() + menupointer[i3].get_imgradius();
                    menupointer_y[i3] = menupointer[i3].get_y() + menupointer[i3].get_imgradius();
                    //distance from the touch pointe to the center of the pointer
                    pointer_radius[i3]  = Math.sqrt( (double) ( Math.pow(menupointer_x[i3]-current_x, 2) + Math.pow(menupointer_y[i3]-current_y, 2)) );
                    //check if the pointer is selected (add some distance)
                    if (pointer_radius[i3] < menupointer[i3].get_imgradius() - 3){
                        menupointer[i3].set_isselected(true);
                        i=i3;
                        break;
                    }
                    //break; 
                }
 
            case MotionEvent.ACTION_MOVE:
                // move the pointer
                if (menupointer[i].get_isselected()) {
                        
                        menupointer[i].set_x(current_x - menupointer[i].get_imgradius());
                        menupointer[i].set_y(current_y - menupointer[i].get_imgradius());
                    }
                    
                    //check items over
                        for(int k = 0; k < 6; k++)
                    {
                        if(
                            menupointer[i].get_x() + menupointer[i].get_border() + over_engagement < menuitems[k].get_x() + menuitems[k].get_width() - menuitems[k].get_border() &&
                            menupointer[i].get_x() - menupointer[i].get_border() + menupointer[i].get_width() - over_engagement > menuitems[k].get_x() + menuitems[k].get_border() &&
                            menupointer[i].get_y() + menupointer[i].get_border() + over_engagement < menuitems[k].get_y() + menuitems[k].get_height() - menuitems[k].get_border() &&
                            menupointer[i].get_y() - menupointer[i].get_border() + menupointer[i].get_height() - over_engagement > menuitems[k].get_y() + menuitems[k].get_border())
                        {
                            menuitems[k].set_isover(true);      
                            menupointer[i].set_position(menuitems[k].get_x(), menuitems[k].get_y());
                        
                            menuitems[k].set_istaken(true);
                            
                            ernum[0] = 1;
                            
                        }
                        else
                            menuitems[k].set_isover(false);
                    }
                    //check items click
                        for(int k = 0; k < 6; k++)
                    {
                        if(
                            menupointer[i].get_x() + menupointer[i].get_border() + click_engagement < menuitems[k].get_x() + menuitems[k].get_width() - menuitems[k].get_border() &&
                            menupointer[i].get_x() - menupointer[i].get_border() + menupointer[i].get_width() - click_engagement > menuitems[k].get_x() + menuitems[k].get_border() &&
                            menupointer[i].get_y() + menupointer[i].get_border() + click_engagement < menuitems[k].get_y() + menuitems[k].get_height() - menuitems[k].get_border() &&
                            menupointer[i].get_y() - menupointer[i].get_border() + menupointer[i].get_height() - click_engagement > menuitems[k].get_y() + menuitems[k].get_border())
                        {
                            menuitems[k].set_isclick(true);
                            menuitems[k].set_istaken(true);
                        }
                        else
                        {
                            menuitems[k].set_isclick(false);
                            menuitems[k].set_istaken(false);
                        }
                    }
                }
                break; 
    
            case MotionEvent.ACTION_UP:
                // reset the pointer to home
                menupointer[i].set_isselected(false);
                break; 
                
            } 
        
            // redraw the canvas
            invalidate();    
            return true;
    }
    @Override
    protected void onDraw(Canvas canvas) {
        
        Paint paint1 = new Paint();
        paint1.setColor(Color.BLACK);
        
        canvas.drawLine(center_X, 0,center_X, ((MainActivity)this.getContext()).get_screenHeight(), paint1);
        canvas.drawLine(0, center_Y,((MainActivity)this.getContext()).get_screenWidth(), center_Y, paint1);
        canvas.drawLine(1, 1,((MainActivity)this.getContext()).get_screenWidth(), ((MainActivity)this.getContext()).get_screenHeight(), paint1);
 
        
 
            //draw items
            for(int k3 = 0; k3 < 6; k3++)
            {
                canvas.drawBitmap(menuitems[k3].get_img(), menuitems[k3].get_x(), menuitems[k3].get_y(), null);
            }
            //get the item clicked
            for(int k2 = 0; k2 < 6; k2++)
            {
                
                //if(menuitems[k2].get_isclick())
                if(menuitems[k2].get_isclick())
                {
                    Paint paint = new Paint();
                    paint.setColor(Color.BLACK); 
                    paint.setTextSize(20); 
                    canvas.drawText(new Integer(menuitems[k2].get_id()).toString() + " is clicked", 30, 30, paint);  
                }
            }
    
        //draw pointer
        for(int i2 = 0; i2<6;i2++)
        {
            canvas.drawBitmap(menupointer[i2].get_img(), menupointer[i2].get_x(), menupointer[i2].get_y(), null);
        }
    }
}


Вернуться к обсуждению:
OnTouchEvent и onDraw не меняют значение переменной Программирование Android
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2013, 16:05
Готовые ответы и решения:

OnTouchEvent и onDraw не меняют значение переменной
Надо выкладывать все классы? Суть в том, что ernum не меняется в OnTouchEvent и в onDraw. ...

Почему переменные a11 и b11 не меняют свое значение
имеется вот такое задание, которое на картинке. Вроде все понял, сделал код, но почему-то...

Надо вывести название переменной, тип данных переменной, значение переменной
у нас есть переменная int variable = 0; Надо вывести название переменной, тип данных переменной,...

Надо вывести название переменной, тип данных переменной, значение переменной
у нас есть переменная int variable = 0; Надо вывести название переменной, тип данных переменной,...

0
26.09.2013, 16:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2013, 16:05
Помогаю со студенческими работами здесь

Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С
Массив С действительных чисел имеет 5 строк и 11 столбцов. Присвоить значение наименьшего элемента...

Обменять значения переменной, имеющей наибольшее значение с переменной, имеющей наименьшее значение
Даны значения трех вещественных переменных a, b и c, отличные друг от друга. Обменять значения...

Присвоить логической переменной T значение true, если значение d-цифра, и значение false в противном случае
Имеется символьная переменная d, присвоить логической переменной T значение true, если значение...

Вычислить значение переменной Y по одному из заданных выражений в зависимости от значения переменной X
1)Для Вашего варианта таблицы 4.1 задайте в окне ввода значение переменной X с учетом заданного...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru