[英]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.