編程方式執行另一個觸摸事件我正在使ImageView拖放與創建重複的實例通過觸摸原來的一個。當一個觸摸事件發生在android
我有一個水平佈局包含許多小圖像。當我觸摸它時,它會創建它的重複實例,並將它放在屏幕上的那個位置略有不同。
現在,我想繼續觸摸事件,但想完成在原始ImageView上完成的第一個觸摸事件,並且想要啓動它的重複實例的觸摸事件。但沒有消除fingure。
我做了以下內容:
img22.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
ImageView img2 = null;
switch (event.getActionMasked()) {
case MotionEvent.ACTION_DOWN :
... ...
... ...
Bitmap bmp2 = BitmapFactory.decodeResource(ImageListActivity.this.getResources(),
R.drawable.img2);
//ImageView
img2 = new ImageView(ImageListActivity.this);
img2.setImageBitmap(bmp2);
img2Param.setMargins((rx-10-x), (ry-10-y-50), 0, 0);
img2.setLayoutParams(img2Param);
img2.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println(" --- img2 On Touch Called ---");
RelativeLayout.LayoutParams img2Param =
(RelativeLayout.LayoutParams) v.getLayoutParams();
img2Param.setMargins((int)event.getRawX()-10, (int)event.getRawY()-60, 0, 0);
v.setLayoutParams(img2Param);
v.invalidate();
return true;
}
});
long downTime2 = SystemClock.currentThreadTimeMillis(),
eventTime2 = SystemClock.currentThreadTimeMillis() + 10;
float x2 = 0.0f, y2 = 0.0f;
int metaState2 = 0;
MotionEvent motionEvent2 = MotionEvent.obtain(
downTime2, eventTime2, MotionEvent.ACTION_POINTER_1_UP, x2, y2, 1);
v.dispatchTouchEvent(motionEvent2);
long downTime = SystemClock.currentThreadTimeMillis(),
eventTime = SystemClock.currentThreadTimeMillis();// + 5000;
float x1 = 0.0f, y1 = 0.0f;
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
downTime, eventTime, MotionEvent.ACTION_MOVE, x1, y1, 1);
img2.onTouchEvent(motionEvent);
... ...
... ...
任何一個可以給我關於繼續觸摸事件,並改變ImageView的實例理念。
此問題已經在以下[在從其他視圖拖動時檢測到視圖上的觸摸事件] [1]中得到解答。 問候 [1]:http://stackoverflow.com/questions/12980156/detect-touch-event-on-a-view-when-dragged-over-from-other-view/13505174#13505174 – Luis
是的,路易斯,我爲這個問題設置了賞金,你知道了,但我知道..但它與此不一樣。 –