невозможно сфотографировать с помощью CameraKit - PullRequest
0 голосов
/ 05 октября 2018

Я следую этой документации http://docs.camerakit.website/#/ Я пытаюсь сделать фотографию, но не могу найти точный код.Когда я пишу этот код в моем методе onCreate, android studio говорит мне, что это неправильный код:

camera.setCameraListener(new CameraListener() {
    @Override
    public void onPictureTaken(byte[] picture) {
        super.onPictureTaken(picture);

        // Create a bitmap    
        Bitmap result = BitmapFactory.decodeByteArray(picture, 0, picture.length);
    }
 });

camera.captureImage();

Вот весь мой код:

public class MainActivity extends AppCompatActivity {

    CameraView cameraView;
    ImageView img_photo;
    Bitmap photo;
    Button btt_scatta;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        //Get root view from Activity
        final View rootView = getWindow().getDecorView().findViewById(android.R.id.content);

        cameraView = (CameraView) findViewById(R.id.camera);
        cameraView.setFacing(CameraKit.Constants.FACING_FRONT);
        btt_scatta = (Button) findViewById(R.id.btt_scatta);

        img_photo = (ImageView) findViewById(R.id.img_photo);

        camera.setCameraListener(new CameraListener() {
        @Override
        public void onPictureTaken(byte[] picture) {
            super.onPictureTaken(picture);

            // Create a bitmap    
            Bitmap result = BitmapFactory.decodeByteArray(picture, 0, picture.length);
        }
     });

        btt_scatta.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                photo = getScreenShot(rootView);
                img_photo.setImageBitmap(photo);
            }
        });


    }

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

    @Override
    protected void onPause() {
        cameraView.stop();
        super.onPause();
    }

    //Capture the root view
    public static Bitmap getScreenShot(View view) {
        View screenView = view.getRootView();
        screenView.setDrawingCacheEnabled(true);
        Bitmap bitmap = Bitmap.createBitmap(screenView.getDrawingCache());
        screenView.setDrawingCacheEnabled(false);
        return bitmap;
    }

    //Store the Bitmap into the phone
    public static void store(Bitmap bm, String fileName){
        final String dirPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Screenshots";
        File dir = new File(dirPath);
        if(!dir.exists())
            dir.mkdirs();
        File file = new File(dirPath, fileName);
        try {
            FileOutputStream fOut = new FileOutputStream(file);
            bm.compress(Bitmap.CompressFormat.PNG, 85, fOut);
            fOut.flush();
            fOut.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

Я уже подписалсявесь код без каких-либо результатов.Вы можете найти код на веб-сайте github: https://github.com/CameraKit/camerakit-android Моя задача - создать приложение, которое сделает фотографию с вашей камеры, а затем покажет вам изображение в режиме просмотра изображений.Я хочу сказать, что камера работает с этим кодом.У меня нет проблем с камерой, но только в момент, чтобы сделать снимок.Спасибо всем.

1 Ответ

0 голосов
/ 05 октября 2018

Вы должны позвонить

camera.captureImage()

внутри прослушивателя кликов вашего btt_scatta.

...