[英]Drag SurfaceView in android
我創建了一個SurfaceView來顯示相機預覽。 我希望能夠拖動它,以便用戶可以移動相機。 多數民眾贊成在我的代碼,但dragListener沒有響應:
final SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surfaceview);
final SurfaceHolder surfaceHolder = surfaceView.getHolder();
buttonStartCameraPreview.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (v.getId() == R.id.startcamerapreview)
{
Show_Preview(surfaceHolder,surfaceView);
}
}
});
surfaceView.setOnDragListener(new OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
camera.stopPreview();
return false;
}
});
protected void Show_Preview(SurfaceHolder surfaceHolder,SurfaceView surfaceView) {
// start cameraPreview on SurfaceHolder
}
最好您閱讀一些有關拖放的內容 。 surfaceView不會拖動,因為您需要使用適當的參數調用surfaceView.startDrag()。 您放置的偵聽器用於在屏幕上拖動某些內容時獲取DragEvents。
一些代碼例如:
ClipData dragData = new ClipData("drag", new String[]{ClipDescription.MIMETYPE_TEXT_PLAIN}, null);
// Instantiates the drag shadow builder.
View.DragShadowBuilder myShadow = new View.DragShadowBuilder(surfaceView);
// Starts the drag
surfaceView.startDrag(dragData, // the data to be dragged
myShadow, // the drag shadow builder
null, // no need to use local data
0 // flags (not currently used, set to 0)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.