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

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

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

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

res/drawable-hdpi/hoge.png
[android]ImageView imageView = new ImageView();
imageView.setImageResource(R.drawable.hoge);[/android] これでいける。

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

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

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

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

SD カードの画像を配置

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

色々試した結果、以下のスクリプトで成功した。
[android] // ImageView のインスタンスを生成
ImageView imgView = (ImageView) findViewById(R.id.imgView);

// File のインスタンスを生成
final File fileImage = new File(Environment.getExternalStorageDirectory().getPath(), “hoge.jpg”);

// FileInputStream のインスタンスを生成
FileInputStream fisImage = new FileInputStream(fileImage);

// Bitmap のインスタンスを生成
Bitmap bmpImage = BitmapFactory.decodeStream(fisImage);

// ImageView に画像を設定
imgView.setImageBitmap(bmpImage);[/android]

尚、5行目について
[android]// getPath メソッドがあってもなくてもOK
final File fileImage = new File(Environment.getExternalStorageDirectory().getPath(), “hoge.jpg”);
final File fileImage = new File(Environment.getExternalStorageDirectory(), “hoge.jpg”);

// sdcard/ フォルダに勝手なフォルダを配置し
// その中に画像ファイルを置いてもOK
// フォルダ名に大文字を用いてもOK
final File fileImage = new File(Environment.getExternalStorageDirectory().getPath(), “hoge.jpg”);
final File fileImage = new File(Environment.getExternalStorageDirectory().getPath(), “folderSample/hoge.jpg”);[/android]  
参考元サイト: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