Android 运动图像留下模糊痕迹

Android 运动图像留下模糊痕迹,android,image,touch-event,Android,Image,Touch Event,我试图在屏幕上拖动一个图像,但它会留下模糊的痕迹,是图像本身造成了模糊吗?我在两个不同的装置上试过,同样的问题出现了 移动图像的正确方式是什么 这是我正在使用的图像 以下是问题的图像 由于每次移动时都会添加新的图像视图,因此会出现重影。。另一个图像帧仍然存在,因此运动轨迹仍然存在。与查找相对布局id的方法相同,为ImageView提供一个id,以便可以检索它并更改其位置(例如,从图像中获取参数,更新值,然后再次设置参数) 希望这有帮助。虽然我不确定模糊程度,但每次调用MoveImage时创建一个

我试图在屏幕上拖动一个图像,但它会留下模糊的痕迹,是图像本身造成了模糊吗?我在两个不同的装置上试过,同样的问题出现了

移动图像的正确方式是什么

这是我正在使用的图像

以下是问题的图像


由于每次移动时都会添加新的图像视图,因此会出现重影。。另一个图像帧仍然存在,因此运动轨迹仍然存在。与查找相对布局id的方法相同,为ImageView提供一个id,以便可以检索它并更改其位置(例如,从图像中获取参数,更新值,然后再次设置参数)


希望这有帮助。

虽然我不确定模糊程度,但每次调用MoveImage时创建一个新的ImageView对象和RelativeLayout并不会有很好的性能。
package com.kylelk.movecursor;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;

public class MainActivity extends Activity {
    private void MoveImage(int x1, int y1) {
        RelativeLayout rlMain = (RelativeLayout) findViewById(R.id.TouchArea);

        ImageView iv = new ImageView(this);
        iv.setImageResource(R.drawable.cursor);
        RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(x1, y1);
        params.topMargin=50;
        params.leftMargin=50;
        rlMain.addView(iv, params);
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    final View touchView = findViewById(R.id.TouchArea);

    touchView.setOnTouchListener(new View.OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            final int action = event.getAction();
            switch (action & MotionEvent.ACTION_MASK) {

                case MotionEvent.ACTION_DOWN: {
                     Integer X = (int) event.getX();
                     Integer Y = (int) event.getY();
                     MoveImage(X, Y);
                    break;
                }

                case MotionEvent.ACTION_MOVE:{
                     Integer X = (int) event.getX();
                     Integer Y = (int) event.getY();
                     MoveImage(X, Y);
                    break;
                }
            }
            return true;

        }

    });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}