Не удалось изменить размер предварительного просмотра камеры с помощью setLayoutParams - PullRequest
0 голосов
/ 09 сентября 2018

Я новичок в Android и разрабатываю приложение для камеры. Я использую SurfaceView для отображения предварительного просмотра камеры, который отлично работает. А затем используйте setLayoutParams (), чтобы изменить размер поверхности, который не работает. Размер поверхности не изменился.

что-то не так с моим кодом?

Очень ценю любые предложения или слова.

Большое спасибо!

Мой код:

//init surfaceview and surfaceholder
private void initSurHolderRear()
{
    if ( null == mSurViewRear )
    {
        mSurViewRear = new SurfaceView(this);
    }

    WindowManager.LayoutParams parms;
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O)
    {
        parms = new WindowManager.LayoutParams(
                1, 1,
                WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT
        );
        parms.gravity = Gravity.START | Gravity.TOP;
    }
    else
    {
        parms = new WindowManager.LayoutParams(
                1, 1,
                WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT
        );
        parms.gravity = Gravity.START | Gravity.TOP;
    }

    ( (WindowManager) ( this.getSystemService(Context.WINDOW_SERVICE) ) ).addView(mSurViewRear, parms);
    mSurHolderRear = mSurViewRear.getHolder();
    mSurHolderRear.addCallback(this);
}


//start camera preview
private void startPreview() {

    try {
        mCamRear.setPreviewDisplay(mSurHolderRear);
        mCamRear.startPreview();

        startRearRecording(mSurHolderRear);

    } catch (Exception e) {
        e.printStackTrace();
        Log.v(LOG_TAG, "Failed to startPreview, e: " + e);
    }
}

//resize camera preview
public void resizePreview()
{
    ViewGroup.LayoutParams parms = mSurViewRear.getLayoutParams();
    parms.width = 1000;
    parms.height = 1000;

    mSurViewRear.setLayoutParams(parms);
}
...