相关疑难解决方法(0)

CropView的裁剪相机预览

我有一个固定宽度和高度的TextureView,我想在其中显示相机预览.我需要裁剪相机预览,以便它看起来不会在我的TextureView中拉伸.怎么做种植?如果我需要使用OpenGL,如何将Surface Texture绑定到OpenGL以及如何使用OpenGL进行裁剪?

public class MyActivity extends Activity implements TextureView.SurfaceTextureListener 
{

   private Camera mCamera;
   private TextureView mTextureView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_options);

    mTextureView = (TextureView) findViewById(R.id.camera_preview);
    mTextureView.setSurfaceTextureListener(this);
}

@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
    mCamera = Camera.open();

    try 
    {
        mCamera.setPreviewTexture(surface);
        mCamera.startPreview();
    } catch (IOException ioe) {
        // Something bad happened
    }
}

@Override
public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
    mCamera.stopPreview();
    mCamera.release();
    return true;
}

@Override
public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
} …
Run Code Online (Sandbox Code Playgroud)

android opengl-es android-camera textureview

23
推荐指数
3
解决办法
3万
查看次数

使SurfaceView大于屏幕(将相机预览适合大于显示器的SurfaceView)

我有一个自定义相机应用程序,我想要任何预览尺寸以全屏模式显示它而不拉伸相机预览图像.对于这一点,我需要做的surfaceView大于屏幕,以保持宽高比,所以实际上用户将看到小于照相机实际拍摄.

出于某种原因,我无法使SurfaceView屏幕尺寸大于屏幕尺寸.

到目前为止我尝试过的:

  • 调整surfaceChanged方法中的相机预览

  • 调整on onMeasure方法中的相机预览

  • 方法中调整大小onLayout
  • 添加FLAG_LAYOUT_NO_LIMITS到活动 - 信息
  • 添加android:clipChildren 用于表面视图 - 信息
  • 在xml中设置宽度: android:layout_width="852px"
  • getWindow().setLayout(852, 1280); 在活动中

但是没有任何成功 - 每次的行为都是一样的:它看起来好一秒钟,然后就会拉长.

这是代码:

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {

    private static final int CAMERA_ROTATE_ANGLE = 90;

    private SurfaceHolder cameraHolder;
    private Camera androidHardCamera;
    private Context context;

    public CameraPreview(Context context) {
        super(context);
        this.context = context;

        // Install a SurfaceHolder.Callback so we get notified when the
        // underlying surface is …
Run Code Online (Sandbox Code Playgroud)

android surfaceview android-camera android-fullscreen

20
推荐指数
1
解决办法
2万
查看次数

如何裁剪相机预览?

我想以更高分辨率运行设备上可用的相机预览.从这个预览中,我想裁剪图像的一小部分,然后在表面视图上显示缩放.所以要说清楚,我想要实现的一个例子.1.运行相机预览,比如800x600分辨率2.裁剪预览,比如400x400 3.将其缩放到200x200并在200x200 SurfaceView上显示.

据我所见,预览会自动缩放到SurfaceView大小.所以这最后一部分是自动处理的(至少我希望如此).

那么,如何裁剪相机预览并进行缩放呢?

android android-camera

6
推荐指数
0
解决办法
1567
查看次数