【Android】【Java】SDカードから画像ファイルを読み込む 
2014/07/05 Sat [edit]
これも基本は「SDカードからテキストファイルを読み込む」と同じ。変更点はストリームを開いた後のデコーダーを、画像用に書き換えれば良いだけ。
isMountSDCard(), toSDCardAbsolutePath() は以前に作ったものを、そのまま使えば良い。
(※) Android4.4(API 19)あたりから内部ストレージの仮想パスに変わった模様
// SDCard のマウント状態をチェックする(Android 用)
public static final boolean isMountSDCard() {
final String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
return true; //マウントされている
} else {
return false; //マウントされていない
}
}
// SDCard のルートディレクトリを取得(Android 用)
public static final File getSDCardDir() {
return Environment.getExternalStorageDirectory();
}
// SDCard 内の絶対パスに変換(Android 用)
public static final String toSDCardAbsolutePath(String fileName) {
return getSDCardDir().getAbsolutePath() + File.separator + fileName;
}
//SDCard から、画像ファイルを読み込む(Android 用)
public static final Bitmap loadBitmapSDCard(String fileName) throws IOException {
if (!isMountSDCard()) {
throw new IOException("No Mount");
}
BufferedInputStream bis = null;
try {
bis = new BufferedInputStream(new FileInputStream(toSDCardAbsolutePath(fileName)));
return BitmapFactory.decodeStream(bis);
} finally {
try {
bis.close();
} catch (Exception e) {
//IOException, NullPointerException
}
}
}
//メインでは... (※例外処理は省略)
String fileName = "sample.jpg"; //"mnt/sdcard/sample.jpg" or "sdcard/sample.jpg" 等になる(端末による)
Bitmap bitmap = loadBitmapSDCard(fileName);
例外処理は手抜きしてるので、必要あれば適当に。
SDカードは基本的にマウント状態等のデバイス特有処理以外は、通常のローカルシステムのファイル処理と変わらないので、実は応用は非常に簡単。
(関連記事)
【Android】SDカードに画像ファイルを保存する(png)
【Android】SDカードに画像ファイルを保存する(jpg)
【Android】SDカードからテキストファイルを読み込む
【Android】SDカードにテキストファイルを保存する
【Android】SDカードのファイルを削除する
【Android】assets フォルダから画像ファイルを読み込む
【Android】内部ストレージから画像ファイルを読み込む
【Android】【Applet】【Java】テキストファイルの読み込み・保存 まとめ
- 関連記事
トラックバック
トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/131-a8848eeb
この記事にトラックバックする(FC2ブログユーザー)
| h o m e |