用于保存完整尺寸图像的Android程序:适用于Android 5.1.1但不适用于版本4.4.1或版本7.0

时间:2017-08-12 13:25:43

标签: android android-camera

我制作了一个包含以下内容的Android应用: (1)按钮拍摄照片'单击时打开设备摄像头。 (2)ImageView显示从相机捕获的全尺寸图像。

我所做的是保存完整大小的图像,然后将其加载到ImageView上。这适用于运行版本5.1.1的Android设备。 但是,在安装了Android 4.1.1版本的设备和另一台版本为7.0的设备上,当“' CAPTURE PHOTO'按下按钮。 我无法找到原因。 这是我的Java代码,并提前感谢:

public class MainActivity extends AppCompatActivity {

private ImageView  imageHolder;
private final int requestCode = 20;
private File mTempCameraPhotoFile = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageHolder = (ImageView)findViewById(R.id.captured_photo);
    Button capturedImageButton = (Button)findViewById(R.id.photo_button);
    capturedImageButton.setOnClickListener( new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent takePictureIntent = new 
  Intent(MediaStore.ACTION_IMAGE_CAPTURE);

                File exportDir = new 
  File(Environment.getExternalStorageDirectory(), "TempFolder");
                if (!exportDir.exists()) {
                    exportDir.mkdirs();
                } else {
                    exportDir.delete();
                }
                mTempCameraPhotoFile = new File(exportDir, "/" + 
 UUID.randomUUID().toString().replaceAll("-", "") + ".jpg");
               // Log.d(LOG_TAG, "/" + 
 UUID.randomUUID().toString().replaceAll("-", "") + ".jpg");
                takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
 Uri.fromFile(mTempCameraPhotoFile));
                startActivityForResult(takePictureIntent, requestCode);
            }
    });
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent 
data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(this.requestCode == requestCode && resultCode == RESULT_OK){

        String filePath = mTempCameraPhotoFile.getPath();
        Drawable img = Drawable.createFromPath(filePath);
        imageHolder.setImageDrawable(img);
        Toast.makeText(this, "Image path"+filePath, 
Toast.LENGTH_LONG).show();


    }
}

}

0 个答案:

没有答案