나는 안드로이드 응용 프로그램을 시작하려고하고 그 전에 다음 작업을 수행해야합니다. View 클래스에서 확장하고 View.onTouchListener 인터페이스를 구현하는 클래스가 있습니다. 이제 onDraw() 메서드에서 원을 그려서 원이 응용 프로그램의 시작 부분에 표시되도록했습니다. 이제는 사용자가 원을 만졌을 때 (실제로 클릭) 무언가를하고 싶습니다. 그래서, 내가 여기서하려고하는 첫 번째 일은 원을 만지작 거리며 건배 메시지를 표시하는 것입니다. 다음 코드를 사용해 보았지만 아무 일도 일어나지 않았습니다. Pls 내가 솔루션을 찾을 수 있습니다. onTouch의 MouseEvent가 사용자 정의보기의 캔바스에 그려진 원 안에 있는지 여부를 감지합니다.
이
는보기 클래스입니다 :package com.exam.trial;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;
public class pad extends View implements View.OnTouchListener{
Paint paint;
public pad(Context context) {
super(context);
// TODO Auto-generated constructor stub
paint = new Paint();
}
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN: {
if (event.getX()>70 && event.getX()<130 && event.getY()>70 && event.getY()<130)
{
Toast toast = Toast.makeText(getContext(), "Works fine", Toast.LENGTH_SHORT);
toast.show();
}
return true;
}
}
return false;
}
@Override
public void onDraw(Canvas canvas)
{
paint.setColor(Color.YELLOW);
canvas.drawCircle(100, 100, 50, paint);
}
}
그리고 여기 내 시작 활동 :
이package com.exam.trial;
import android.app.Activity;
import android.os.Bundle;
public class TrialActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pad p = new pad(this);
setContentView(p);
}
}
는 http://stackoverflow.com/questions/4207067/how-to-implement-touch-listener-on-image – kannappan