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

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

Войти
Регистрация
Восстановить пароль
 
alex1392
31 / 31 / 3
Регистрация: 24.07.2013
Сообщений: 187
#1

Touch + свой View - Программирование Android

26.01.2015, 01:48. Просмотров 251. Ответов 0
Метки нет (Все метки)

Добрый вечер, Подскажите плис почему отлавливается только Action_down и не отлавливается все остальное, КОД:
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
package your.package63.namespace;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.os.Handler;
 
import android.util.Log;
import android.view.Display;
import android.view.MotionEvent;
import android.view.View;
 
import android.view.WindowManager;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
 
 
public class Draw2D extends View implements OnTouchListener {
    private Paint mPaint;
    Context cont;
    Draw2D d2d;
    Integer q;
    float x;
    float y;
    TextView tx ;
    private Handler mHandler = new Handler();
    public Draw2D(Context context) {
        super(context);
        cont = context;
        d2d=this;
        q=0;
        mPaint = new Paint();       
        mHandler.postDelayed(TimeUpdater, 100);
        this.setOnTouchListener(this);
    }
    protected void onDraw(Canvas canvas)
    {
        //Log.i("OnDraw","Start");
        super.onDraw(canvas);
        mPaint.setColor(Color.DKGRAY);
        canvas.drawPaint(mPaint);
        
        mPaint.setColor(Color.YELLOW);
        mPaint.setStyle(Style.FILL);
        mPaint.setAntiAlias(true);
        canvas.drawCircle(150, 150, 20, mPaint);
        mPaint.setColor(Color.GREEN);
        
        Display disp = ((WindowManager)cont.getSystemService(cont.WINDOW_SERVICE)).getDefaultDisplay();
        canvas.drawRect(10, 10, 100, 20, mPaint);
        
        mPaint.setColor(Color.RED);
        canvas.drawRect(0, disp.getHeight()-150, 100, disp.getHeight()-120, mPaint);
        canvas.drawText(q.toString(),11, 11, mPaint);
        q++;
        
        
        //Log.i("OnDraw","Good");
        
    }
    private Runnable TimeUpdater = new Runnable() {
        public void run() {
            d2d.invalidate();
            // задержка в 100 мс
            mHandler.postDelayed(this, 100);
        }
    };
    @Override
    public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
            case MotionEvent.ACTION_MOVE:
                Log.i("app","Work+Move");
                break;
            case MotionEvent.ACTION_DOWN:
                Log.i("app","Work+Down");
                Toast.makeText(cont, "move", Toast.LENGTH_SHORT);
                break;
            case MotionEvent.ACTION_UP:
                Log.i("app","Work+Up");
                Toast.makeText(cont, "move", Toast.LENGTH_SHORT);
                break;
            default:
                break;
            }
            return false;
        }
}
Добавлено через 1 час 7 минут
Собственно говоря как всегда сам понял в чем проблема: код ниженеобходимо было добавить:
Java
1
2
3
        setFocusable(true);
        setFocusableInTouchMode(true);
        setClickable(true);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2015, 01:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Touch + свой View (Программирование Android):

Поставить View поверх другой и отключить touch - Программирование Android
Здравствуйте. Хочу реализовать следующее. Есть список на каждом итеме есть кнопки. Нажимаю на кнопку и поверх списка появляется View с...

В чем разница (View view) и (View v) - Программирование Android
Я только начинаю изучать программирование под андроид (до этого вобще программированием не занимался), по гуглу удалось найти только...

View вытесняет другое view из activity - Программирование Android
После второго EditText должна располагаться кнопка. Но почему-то этот второй EditText выпихивает ее из activity. Что не так?

Public void onClick(View view) - Программирование Android
Не работает public void onClick(View view) :wall: public class MainActivity extends AppCompatActivity implements View.OnClickListener...

listview и touch - Программирование Android
Доброго дня. Нужно дополнить нажатия на listview - то есть при длинном нажатии на элемент списка еще должно просматриваться в какую...

Обработка касания touch - Программирование Android
Всем привет, я пытаюсь оброботать на картинке нажатие на найденный предмет по координатом через метод onTouch(View v, MotionEvent...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2015, 01:48
Привет! Вот еще темы с ответами:

Touch – обработка касания - Программирование Android
Задача - чтобы после прикосновения уменьшался шрифт до тех пор пока не будет поднят палец. Если ли другие варианты, кроме как написать...

Canvas, SurfaceView, Touch - Программирование Android
Всем добра. Возник один баг (может в коде проблема), который неприятно выглядит в приложении. Рисуя с помощью SurfaceView, Canvas...

Отрисовка View - Программирование Android
Здравствуйте! Имеется свой компонент, наследуемый от View. В нём (на его canvas, на всю) требуется отрисовать другой View, как это...

Сериализация View - Программирование Android
Здравствуйте. Мучает такой вопрос: Использую FrameLayout в коотрый динамически добавляются ImageView после чего пользователь может...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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