Тач-события

Ответить
tyapavel
Сообщения: 11
Зарегистрирован: 09 янв 2012, 01:31

Тач-события

Сообщение tyapavel » 09 янв 2012, 01:48

Помогите начинающему - имеется наследник View растянутый на всю Activity. при нажатии на экран появляется текст. Как сделать так, чтобы при отпускании он пропадал? Код примерно такой.

Код: Выделить всё

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.view.MotionEvent;
import android.view.View;

public class MyView extends View {
	private boolean drawTestText = false;
	public MyView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void draw(Canvas canvas) {
		// TODO Auto-generated method stub
		super.draw(canvas);
		Paint background = new Paint();
		background.setColor(getResources().getColor(R.color.background));
		canvas.drawRect(0, 0, getWidth(), getHeight(), background);
		if(drawTestText){
			Paint foreground = new Paint(Paint.ANTI_ALIAS_FLAG);
			foreground.setColor(getResources().getColor(R.color.foreground));
			foreground.setStyle(Style.FILL);
			canvas.drawText("Test", getWidth()/10, getHeight()/10, foreground);
		}
	}

	@Override
	public boolean onTouchEvent(MotionEvent event) {
		drawTestText = true;
		invalidate();
		return super.onTouchEvent(event);
	}
	
}

Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Re: Тач-события

Сообщение damager82 » 09 янв 2012, 02:40

Добро пожаловать на форум! :)

Надо определять тип тач-события. Метод обработки события перепишите так:

Код: Выделить всё

	public boolean onTouchEvent(MotionEvent event) {
		switch (event.getActionMasked()) {
		case MotionEvent.ACTION_DOWN:
			drawTestText = true;
			invalidate();
			break;
		case MotionEvent.ACTION_UP:
			drawTestText = false;
			invalidate();
			break;
		}
		return true;
	}
Должно заработать.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

tyapavel
Сообщения: 11
Зарегистрирован: 09 янв 2012, 01:31

Re: Тач-события

Сообщение tyapavel » 09 янв 2012, 18:40

Спасибо, работает! :D

Ответить