繁体   English   中英

在Android中拖动SurfaceView

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM