Android-gratis imágenes de vista previa (fotografiado) la implementación rápida

Realización de las ideas:

La vista previa SurfaceView ancho establecido no al alto valor a simple vista, por ejemplo 0.1dp, otros criterios personalizados es un paso cámaras!

 

Por supuesto, los artículos personalizados de la cámara en línea y más que ir, no puedo hacer la misma vieja historia, donde recomiendo un buen uso de las bibliotecas de terceros, tal vez mucha gente ya conoce y ha utilizado, no se utilizan los estudiantes pueden probar, a favor de la prueba es fácil de usar.

Preámbulos, la primera dirección de origen: https://github.com/CameraKit/camerakit-android

 

Aquí el uso brevemente:

1, añadir bibliotecas dependientes en Gradle en: la compilación 'com.wonderkiln: camerakit: 0.13.1'

2, el código de archivo de diseño:

<LinearLayout
            android:id="@+id/ll_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
 
            <Button
                android:id="@+id/btn_test"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="测试"
                android:layout_gravity="center_horizontal"/>

            <com.wonderkiln.camerakit.CameraView
                android:id="@+id/camera"
                android:layout_width="0.1dp"
                android:layout_height="0.1dp"
                android:adjustViewBounds="true"
                camerakit:ckFacing="front" />

        </LinearLayout>

camerakit: ckFacing = "delante", representada por la cámara frontal, el resto de las propiedades ver la documentación oficial.

Nota: La anchura y la altura no se pueden ajustar a 0, de lo contrario no se puede tomar fotografías.

3, del código de Java

public class MainActivity extends BaseActivity {
    @BindView(R.id.btn_test)
    Button btnTest;
    @BindView(R.id.camera)
    CameraView cameraView;
    @BindView(R.id.ll_content)
    LinearLayout llContent;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        initView();
    }    

    @Override
    protected void onResume() {
        super.onResume();
        cameraView.start();
    }

    @Override
    protected void onPause() {
        // TODO Auto-generated method stub
        cameraView.stop();
        super.onPause();
    }

    private void initView() {
        //设置回调
        cameraView.addCameraKitListener(new CameraKitEventListener() {
            @Override
            public void onEvent(CameraKitEvent cameraKitEvent) {

            }

            @Override
            public void onError(CameraKitError cameraKitError) {

            }

            @Override
            public void onImage(CameraKitImage cameraKitImage) {
                ImageView imageView = new ImageView(MainActivity.this);
                imageView.setImageBitmap(cameraKitImage.getBitmap());
                llContent.addView(imageView);
            }

            @Override
            public void onVideo(CameraKitVideo cameraKitVideo) {

            }
        });
    }

    @OnClick(R.id.btn_test)
    public void onViewClicked() {
       //拍照
       cameraView.captureImage();
    }

}

 

Publicado cuatro artículos originales · ganado elogios 3 · Vistas 3978

Supongo que te gusta

Origin blog.csdn.net/qq_24834241/article/details/83013586
Recomendado
Clasificación