簡體   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