首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态图片ontouch

动态图片ontouch
EN

Stack Overflow用户
提问于 2012-04-19 17:33:23
回答 2查看 1.1K关注 0票数 1

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

代码语言:javascript
复制
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;
    }

}

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-19 17:44:03

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

票数 0
EN

Stack Overflow用户

发布于 2012-04-19 17:49:12

你试过这个吗-

代码语言:javascript
复制
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);
                                }
                            });
                        }

另外,也可以参考this

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10225301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档