首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用onTouchListener时不会落在最后一个位置

使用onTouchListener时不会落在最后一个位置
EN

Stack Overflow用户
提问于 2014-02-19 18:23:31
回答 1查看 46关注 0票数 0

我试着学习拖放,从那我做了这个demo.Please告诉我这段代码有什么问题?按钮不会随着我的手指tip.Its定位而移动...

代码语言:javascript
运行
复制
            public class Home extends Activity implements OnTouchListener {

            private final static int START_DRAGGING = 0;
            private final static int STOP_DRAGGING = 1;

            private Button btn;
            private FrameLayout layout;
            private int status;
            private LayoutParams params;

            private ImageView image;

            /** Called when the activity is first created. */
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                layout = (FrameLayout) findViewById(R.id.LinearLayout01);
                // layout.setOnTouchListener(this);

                btn = (Button) findViewById(R.id.btn);
                btn.setDrawingCacheEnabled(true);
                btn.setOnTouchListener(this);

                params = new LayoutParams(LayoutParams.WRAP_CONTENT,
                        LayoutParams.WRAP_CONTENT);

            }

            @Override
            public boolean onTouch(View view, MotionEvent me) {
                if (me.getAction() == MotionEvent.ACTION_DOWN) {
                    status = START_DRAGGING;
                    //image = new ImageView(this);
                    //image.setImageBitmap(btn.getDrawingCache());
                    //layout.addView(btn, params);
                    btn.setVisibility(View.INVISIBLE);
                }
                if (me.getAction() == MotionEvent.ACTION_UP) {
                    status = STOP_DRAGGING;
                    //btn.setPadding((int) me.getRawX(), (int) me.getRawY(), 0, 0);
                    btn.setVisibility(View.VISIBLE);
                    Log.i("Drag", "Stopped Dragging");
                } else if (me.getAction() == MotionEvent.ACTION_MOVE) {
                    if (status == START_DRAGGING) {
                        btn.setVisibility(View.VISIBLE);
                        System.out.println("Dragging"+me.getRawX()+","+me.getRawY());

                        btn.setX(me.getRawX());
                        btn.setY(me.getRawY());
                        btn.invalidate();

                    }
                }
                return false;
            }
        }

Thanks..Please尽快告诉你...

EN

回答 1

Stack Overflow用户

发布于 2014-02-19 18:34:08

为了让你的任务更简单,在Drag and Drop 11版本中,Android框架增加了API subframework,它很容易实现,也很容易解释。

Android drag and drop sub framework

Example of drag and drop (name = Add to Cart)

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

https://stackoverflow.com/questions/21877596

复制
相关文章

相似问题

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