1

我正在尝试在android中移动一张图片,但我真的没有找到一种方法来做到这一点。我已经使用了几种方法,但都没有真正奏效,这是我目前的代码

public class Tangram extends Activity implements OnTouchListener{
ImageView img;
int x=0,y=0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.tangram);

    img = (ImageView) findViewById(R.id.tangrampic1);
    img.setOnTouchListener(this);
    img.scrollBy(x, y);
}

 public boolean onTouch(View v, MotionEvent event) 
    { 
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
            {      
                  x++;
                     break; 
            }
            case MotionEvent.ACTION_UP:
            {             
                  x--;  
                 break;
            }
        }
        return true;
    }

}

有人知道如何移动物体吗?

4

2 回答 2

0

我会这样做: - 实现你自己的视图 - 在这个视图的 ondraw 方法中绘制你的图像(从偏移量 0/0 开始) - onTouch 移动偏移量并使视图无效

于 2012-04-19T09:44:03.127 回答
0

你试过这个 -

surf.setOnTouchListener( new SurfaceView.OnTouchListener(){
              public boolean onTouch(View v, MotionEvent event) {
                 case MotionEvent.ACTION_MOVE:
                    if( moving ){
                        final int x_new = (int)event.getX();
                        final int y_new = (int)event.getY();
                        mDrawTiles.draw( new DrawLogic(){
                            @Override
                            public void draw(Rect _surface) {
                                mTiles.setBounds(
                                    x_new - mDrawWidth/2,
                                    y_new - mDrawHeight/2,
                                    x_new + mDrawWidth/2,
                                    y_new + mDrawHeight/2);
                                }
                            });
                        }

而且,也参考这个

于 2012-04-19T09:49:11.790 回答