gpt4 book ai didi

android - 使用 onDragListener 改变 Videoview 的位置

转载 作者:行者123 更新时间:2023-11-29 00:24:43 27 4
gpt4 key购买 nike

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

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是

<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..谢谢!!

最佳答案

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

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

关于android - 使用 onDragListener 改变 Videoview 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20630680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com