使用相机拍摄,在imageview中显示并保存到照片

Eli*_*net 4 android

我正在尝试一个月来制作简单的相机捕捉没有成功.我正在开发的这个应用程序几个月前工作很好,但因为我更新Android到版本7该应用程序停止正常工作.我想点击一个按钮,在捕获后激活相机(内置非api)以在imageview中显示图像(高质量)并将图像保存到图片文件夹.之后将图像发送到服务器.在我的应用程序的现有版本中,我捕获图像,在imageview中显示保存的图像并通过json发送到服务器.现在活动结果为空,imageview为空:-(请帮助

旧代码很有效

public void onClick(View v) {
    switch (v.getId()) {
        case R.id.cancel_btn:
            finish();
            break;
        case R.id.camera_btn:
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
            startActivityForResult(cameraIntent, CAMERA_REQUEST);
            break;
    }
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
        Uri u = data.getData();
        Log.d("u", String.valueOf(u));
        theImageUriStr = String.valueOf(u);
        Log.d("theImageUriStr", String.valueOf(theImageUriStr));
        mImageView = (ImageView) findViewById(R.id.mImageView);
        ALBUM_ART_URI = Uri.parse(String.valueOf(theImageUriStr));
        Picasso.with(AddNewDish.this).load(ALBUM_ART_URI).into(mImageView);
    }
    else{
        Log.d("mmmm", String.valueOf(resultCode));
    }
}
Run Code Online (Sandbox Code Playgroud)

我从Log.du和theImageUriStr获得的结果为null

Fat*_*tie 8

2017年

Android中唯一逼真的摄像头方法是革命性的库

https://github.com/gogopop/CameraKit-Android

它改变了Android开发中的一切 -

没有其他现实的方法可行.

谷歌(实际上是他们的日本办事处)终于自己写了一些让Android摄像头变成实际软件的东西.那是:https://github.com/google/cameraview.这是一个神奇的图书馆,摄像头难度从10到5.

flurgle库https://github.com/gogopop/CameraKit-Android是第一个最终解决所有问题并使相机像普通软件一样工作的大门.困难现在是1.

这样做可以在您的应用中添加实时相机

<com.flurgle.camerakit.CameraView
    android:id="@+id/camera"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"/>
Run Code Online (Sandbox Code Playgroud)

这样做是为了拍照

cameraView.setCameraListener(new CameraListener() {
  @Override
  public void onPictureTaken(byte[] picture) {
   super.onPictureTaken(picture);
   Bitmap result = BitmapFactory.decodeByteArray(picture, 0, picture.length);
   save the image...
  });
Run Code Online (Sandbox Code Playgroud)

全都完了.而已.

Android相机十年的生活终结终于完成了.