2015-05-27 90 views
0

我嘗試dragview列表項目,它具有表面視圖顯示視頻。而對於dragndrop我使用的代碼如下:Android dragndrop surfaceview

ClipData data = ClipData.newPlainText("", ""); 
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(mMainLayout); 
mMainLayout.startDrag(data, shadowBuilder, mMainLayout, 0); 

問題是,當列表項開始拖動,我看到surfaceview只有黑色矩形,而不是最後一個視頻幀。

回答

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並回收位圖。