Подтвердить что ты не робот

Как загрузить ImageView из файла png?

Я делаю снимок с помощью камеры, используя

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
startActivityForResult( intent, 22 );

Когда действие завершается, я пишу изображение растрового изображения в файл PNG.

    java.io.FileOutputStream out = openFileOutput("myfile.png", Context.MODE_PRIVATE);
    bmp.compress(Bitmap.CompressFormat.PNG, 90, out);

Это нормально, и я вижу, что файл создан в моем личном пространстве приложений.

У меня возникают трудности, когда я позже хочу отобразить это изображение с помощью ImageView.

Может кто-нибудь предложить код для этого?

Если я пытаюсь создать файл с разделителями путей в, он терпит неудачу. Если я попытаюсь создать Uri из имени без разделителей, это не сработает.

Я могу открыть файл OK, используя:

        java.io.FileInputStream in = openFileInput("myfile.png");

Но это не дает мне Uri Мне нужно установить изображение с помощью

   iv.setImageURI(u)

Резюме: У меня есть изображение в файле png в частных приложениях. Что такое код для установки в ImageView?

Спасибо.

4b9b3361

Ответ 1

Попробуйте BitmapFactory.decodeFile(), а затем setImageBitmap() на ImageView.

Ответ 2

Также возможно:

java.io.FileInputStream in = openFileInput("myfile.png");
iv.setImageBitmap(BitmapFactory.decodeStream(in));

Ответ 3

iv.setImageURI(Uri.fromFile(in));

Ответ 4

bitmap = BitmapFactory.decodeFile(imageInSD);

Ответ 5

Почему бы не так:

ImageView MyImageView = (ImageView)findViewById(R.id.imageView1);
Drawable d = Drawable.createFromPath( PATH TO FILE );
MyImageView.setImageDrawable(d);

Ответ 6

Между decodeStream() и decodeFile() не должно быть разницы. decodeFile() метод открывает входной поток и вызывает decodeStream(). На это уже ответили ссылка