Установите ImageView из Uri - PullRequest
0 голосов
/ 08 мая 2018
private File createImageFile() {
        File picturesDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
        String timeStamp = sdf.format(new Date());

        File imageFile = new File(picturesDirectory, "picture" + timeStamp +".jpg");

        SharedPreferences fileLocation = getSharedPreferences("filePath", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = fileLocation.edit();
        editor.putString("file", imageFile.toString());
        ImageView photoImg = (ImageView)findViewById(R.id.photoImg);
        photoImg.setImageURI(Uri.fromFile(imageFile));
        editor.commit();

        return imageFile;
    }

Я пытаюсь отобразить изображение, снятое с помощью камеры, однако после съемки изображение не отображается в моем ImageView. Изображение определенно сохраняется, так как я могу просмотреть его в своей галерее.

Я посмотрел на stackoverflow, и ни один из ответов, похоже, не работает для меня, я пытался использовать BitmapFactory, но это также не работает. Любой вклад будет принят с благодарностью

Ответы [ 2 ]

0 голосов
/ 09 мая 2018
private void takePhotoFromCamera() {

        str_SaveFolderName = Environment.getExternalStorageDirectory() + "/folder_name";
        str_randomnumber = String.valueOf(Calendar.getInstance().getTimeInMillis());
        wallpaperDirectory = new File(str_SaveFolderName);
        if (!wallpaperDirectory.exists())
            wallpaperDirectory.mkdirs();
        str_Camera_Photo_ImageName = str_randomnumber + ".jpg";
        str_Camera_Photo_ImagePath = str_SaveFolderName + "/" + str_randomnumber + ".jpg";

        System.err.println(" str_Camera_Photo_ImagePath  " + str_Camera_Photo_ImagePath);

        f = new File(str_Camera_Photo_ImagePath);
        startActivityForResult(new Intent(
                MediaStore.ACTION_IMAGE_CAPTURE).
                putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)), Take_Photo);

    }

и onActivityResult () -

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == this.RESULT_CANCELED) {
            return;
        }

        if (requestCode == Take_Photo) {

            imageview.setImageBitmap(
                    decodeSampledBitmapFromResource(getResources(),
                            R.id.simpleImageView, 100, 100));
        }
}
0 голосов
/ 08 мая 2018

Используйте код, это вам поможет

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) { 
        Bitmap photo = (Bitmap) data.getExtras().get("data");   
        imageView.setImageBitmap(photo); 
    }
} 
...