首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用onDragListener更改Videoview的位置

使用onDragListener更改Videoview的位置
EN

Stack Overflow用户
提问于 2013-12-17 17:42:18
回答 2查看 1.3K关注 0票数 2

我正在使用VideoView播放视频。当我将它从原始位置拖动到新位置时,我想更改它的位置。我使用了以下代码:

代码语言:javascript
运行
复制
video_view.setOnDragListener(new OnDragListener() {

        @Override
        public boolean onDrag(View v, DragEvent event) {
            // TODO Auto-generated method stub
            switch(event.getAction())
            {
                case DragEvent.ACTION_DRAG_ENTERED:
                    break;

                case DragEvent.ACTION_DRAG_STARTED:
                    return true;

                case DragEvent.ACTION_DRAG_LOCATION:
                    return true;

                case DragEvent.ACTION_DROP:
                    float x=event.getX();
                    float y=event.getY();

                    int top=(int)x+height;
                    int bottom=(int)y+height;
                    int left=(int)x+width;
                    int right=(int)y+width;

                    video_view.layout(left, top, right, bottom);
                    v.invalidate();

而xml是

代码语言:javascript
运行
复制
<VideoView 
android:id="@+id/video"
android:layout_height="100dp"
android:layout_width="100dp"/>

在上面的代码中,video_view是我的videoview对象。但是当我试图拖动它时,什么也没有改变,所以我做错了什么吗?或者我需要使用FrameLayout,因为我在这里使用相对布局??

此外,我还需要澄清一下DragEvent.ACTION_DRAG_ENTEREDDragEvent.ACTION_DRAG_STARTED之间的区别

DragEvent.ACTION_DRAG_EXITEDDragEvent.ACTION_DRAG_ENDED..谢谢你!!

EN

回答 2

Stack Overflow用户

发布于 2014-03-07 05:48:25

您必须在视图中执行startDrag方法来启动拖动过程:

代码语言:javascript
运行
复制
video_view.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                ClipData data = ClipData.newPlainText("", "");
                View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view);
                view.startDrag(data, shadowBuilder, view, 0);
                return false;
            }
            return true;
        }
    });
票数 2
EN

Stack Overflow用户

发布于 2015-02-25 11:58:25

您可以将您的代码更改为下面的代码,此代码对我有效。:D

代码语言:javascript
运行
复制
video_view.getRootView().setOnDragListener(new OnDragListener() {..your code..}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20630680

复制
相关文章

相似问题

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