运动图像留下模糊痕迹

时间:2013-12-04 01:04:03

标签: android image touch-event

我试图在屏幕上拖动图像,但它会留下模糊痕迹,图像本身是否会导致模糊?我在两个不同的设备上尝试了它,并出现同样的问题。

移动图片的正确方法是什么?

以下是我使用的图片http://i.imgur.com/w9xWz.png

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;
    }

}

以下是问题的图片

blur trail

1 个答案:

答案 0 :(得分:1)

你正在获得鬼魂,因为你每次移动都会添加新的图像视图。另一个图像帧仍然存在,因此是运动轨迹。查找相对布局的id的方式相同,给ImageView一个Id,这样你就可以检索它并改变它的位置(从图像中获取参数,更新值,然后再将参数设置回来)。 / p>

希望这有帮助。