Как загрузить ImageView из файла png? - PullRequest
11 голосов
/ 22 апреля 2010

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

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 из имени без разделителей, это не удается.

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

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

Но это не такдайте мне Uri, мне нужно установить изображение с

   iv.setImageURI(u)

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

Спасибо.

Ответы [ 6 ]

33 голосов
/ 22 апреля 2010

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

8 голосов
/ 24 апреля 2010

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

java.io.FileInputStream in = openFileInput("myfile.png");
iv.setImageBitmap(BitmapFactory.decodeStream(in));
3 голосов
/ 28 марта 2013
iv.setImageURI(Uri.fromFile(in));
1 голос
/ 14 апреля 2013

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

ImageView MyImageView = (ImageView)findViewById(R.id.imageView1);
Drawable d = Drawable.createFromPath( PATH TO FILE );
MyImageView.setImageDrawable(d);
1 голос
/ 31 декабря 2012
bitmap = BitmapFactory.decodeFile(imageInSD);
0 голосов
/ 17 июля 2013

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

...