Ответ 1
Попробуйте BitmapFactory.decodeFile()
, а затем setImageBitmap()
на ImageView
.
Я делаю снимок с помощью камеры, используя
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?
Спасибо.
Попробуйте BitmapFactory.decodeFile()
, а затем setImageBitmap()
на ImageView
.
Также возможно:
java.io.FileInputStream in = openFileInput("myfile.png");
iv.setImageBitmap(BitmapFactory.decodeStream(in));
iv.setImageURI(Uri.fromFile(in));
bitmap = BitmapFactory.decodeFile(imageInSD);
Почему бы не так:
ImageView MyImageView = (ImageView)findViewById(R.id.imageView1);
Drawable d = Drawable.createFromPath( PATH TO FILE );
MyImageView.setImageDrawable(d);
Между decodeStream()
и decodeFile()
не должно быть разницы. decodeFile()
метод открывает входной поток и вызывает decodeStream()
. На это уже ответили ссылка