アクティビティに画像を配置

Posted by muchag | Android |
初回投稿:2011-04-17 (日) 0:02:09 | 最終更新:2011-04-17 (日) 22:50:01

SD カードにある画像を
アクティビティに配置しようとして苦労した・・・。

普段 ImageView に画像をセットする場合

res/drawable-hdpi/hoge.png
  1. ImageView imageView = new ImageView();
  2. imageView.setImageResource(R.drawable.hoge);

これでいける。

※ drawable-xxx というフォルダ名称は、
Android OS のヴァージョン(API Level)によってルールがある。
詳しくは、ディレクトリ構成

元々、画像の配置方法は以下の2種類らしい。

  1. リソースファイルを ID にて指定
  2. ビットマップを指定

上の例は1番目の手法なわけだが
これすら画像の保存場所によっては
他にも方法がある。
詳しくは、ディレクトリ構成
 

SD カードの画像を配置

ところが、SD カードの画像を配置しようとすると2番目の方法しかないようで
それには FileInputStream というクラスを利用する。
FileInputStream & FileOutputStream

色々試した結果、以下のスクリプトで成功した。

  1. // ImageView のインスタンスを生成
  2. ImageView imgView = (ImageView) findViewById(R.id.imgView);
  3.  
  4. // File のインスタンスを生成
  5. final File fileImage = new File(Environment.getExternalStorageDirectory().getPath(), "hoge.jpg");
  6.  
  7. // FileInputStream のインスタンスを生成
  8. FileInputStream fisImage = new FileInputStream(fileImage);
  9.  
  10. // Bitmap のインスタンスを生成
  11. Bitmap bmpImage = BitmapFactory.decodeStream(fisImage);
  12.  
  13. // ImageView に画像を設定
  14. imgView.setImageBitmap(bmpImage);

尚、5行目について

  1. // getPath メソッドがあってもなくてもOK
  2. final File fileImage = new File(Environment.getExternalStorageDirectory().getPath(), "hoge.jpg");
  3. final File fileImage = new File(Environment.getExternalStorageDirectory(), "hoge.jpg");
  4.  
  5. // sdcard/ フォルダに勝手なフォルダを配置し
  6. // その中に画像ファイルを置いてもOK
  7. // フォルダ名に大文字を用いてもOK
  8. final File fileImage = new File(Environment.getExternalStorageDirectory().getPath(), "hoge.jpg");
  9. final File fileImage = new File(Environment.getExternalStorageDirectory().getPath(), "folderSample/hoge.jpg");

 
参考元サイト:yamaTum 画像の保存→表示 – TAKのAndroid開発日記

Posted by muchag | Android |
初回投稿:2011-04-17 (日) 0:02:09 | 最終更新:2011-04-17 (日) 22:50:01

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment