web-dev-qa-db-ja.com

pngファイルから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を作成しようとすると、失敗します。

I canファイルを開くOK:

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

しかし、それは私がイメージを設定する必要があるUriを私に与えません

   iv.setImageURI(u)

概要:プライベートアプリデータのpngファイルに画像があります。それをImageViewに設定するためのコードは何ですか?

ありがとう。

12
Peter vdL

ImageViewBitmapFactory.decodeFile()を試してからsetImageBitmap()を試してください。

33
CommonsWare

また可能:

Java.io.FileInputStream in = openFileInput("myfile.png");
iv.setImageBitmap(BitmapFactory.decodeStream(in));
8
Apc
iv.setImageURI(Uri.fromFile(in));
3
user2107276

なぜこのようにしないのですか?

ImageView MyImageView = (ImageView)findViewById(R.id.imageView1);
Drawable d = Drawable.createFromPath( PATH TO FILE );
MyImageView.setImageDrawable(d);
1
Bernd
bitmap = BitmapFactory.decodeFile(imageInSD);
1
Nauman Khalid

decodeStream()decodeFile()の間に違いはありません。 decodeFile()メソッドは入力ストリームを開き、decodeStream()を呼び出します。これはすでにこれで答えられました リンク

0
Alvaro