Android dragndrop surfaceview

时间:2015-05-27 15:13:15

标签: android

我尝试使用具有显示视频的surfaceview的dragndrop列表项。对于dragndrop我使用下面的代码:

{{1}}

问题是,当列表项开始拖动时,我在surfaceview中只看到黑色矩形而不是最后一个视频帧。

1 个答案:

答案 0 :(得分:0)

好的,经过长时间的研究,我发现了我的问题。首先,我删除了SurfaceView并使用TextureView代替它。接下来当用户开始拖动时,对我来说这是长按一下,下一个代码就可以了

ClipData data = ClipData.newPlainText("", "");
Bitmap b = mTextureView.getBitmap();
mDragImageView.setImageBitmap(b);
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(mMainLayout);
mMainLayout.startDrag(data, shadowBuilder, mMainLayout, 0);
mDragImageView.setVisibility(View.GONE);
b.recycle();

我使用getBitmap从TextureView拍摄照片并在ImageView中设置它,它是TextureView的前面并设置ImageView可见。之后,我开始拖动主要布局。拖动控制器使用ImageView获取我设置的最后一帧的屏幕截图。之后我隐藏了ImageView并回收了位图。