因此,我正在開發一個應用程序,用戶將能夠與圖像進行交互,我需要使用OnTouchListener,但我不知道如何正確執行。每當我點擊圖片 - 沒有任何反應。最後,我試圖獲得用戶觸摸圖像時會出現的圓圈,並且會隨着手指移動。這裏是我的MainActivity:在Canvas中使用OnTouchListener的Android
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File file = new File(Environment.getExternalStorageDirectory() + "/Pictures/boxes.jpg");
String fileString = file.getPath();
takenPhoto = (ImageView) findViewById(R.id.imageView1);
bmp = BitmapFactory.decodeFile(fileString);
mutableBitmap = bmp.copy(Bitmap.Config.ARGB_8888, true);
takenPhoto.setImageBitmap(mutableBitmap);
}
private static class DrawView extends View {
public DrawView(Context context) {
super(context);
}
public boolean onTouch(View view, MotionEvent event) {
int action = event.getAction();
drawPos.x = event.getX();
drawPos.y = event.getY();
switch (action) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
drawing = true;
this.invalidate();
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
drawing = false;
this.invalidate();
break;
default:
break;
}
return true;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (drawing) {
canvas.drawCircle(zoomPos.x, zoomPos.y, 100, mPaint);
}
}
}
}
如果替換setOnClickListener中的setOnTouchListener,是否可以與圖像交互? –
不,我不能使用OnClickListener,因爲它沒有我需要的MotionEvent –
你在哪裏使用DrawView?在上面的代碼中,您爲圖像視圖設置了一個觸摸偵聽器,該圖像視圖吞下所有觸摸事件並不做任何事情。 –