ギャラリーへの画像反映方法について

3,057 views
Skip to first unread message

あき

unread,
Mar 2, 2010, 6:25:16 AM3/2/10
to 日本Androidの会
日本Androidの会の皆様

田中と申します。
Androidのギャラリーへの画像反映についてご存知の方がいらっしゃいましたら、よろしくお願いいたします。

使用環境はHT-03Aで、APIバージョンは1.6です。

以下の命令を使用してSDカードにPNGファイルを書き込むところまでは、
ddmsを使用して確認出来たのですが、その後ギャラリーを開いても
画像ファイルが見えません。
何かサムネイル等を作成する方法があるのでしょうか?
ちなみに、Androidを再起動するとギャラリーに反映されます。

FileOutputStream out = new FileOutputStream(fname);
bmp.compress(CompressFormat.PNG, 100, out);


何かご存知でしたらよろしくお願いいたします。

田中
aki....@gmail.com

watanabe tomo

unread,
Mar 2, 2010, 7:18:07 AM3/2/10
to android-g...@googlegroups.com
渡辺です

ちょうど今日、その辺つくったので・・・

保存した画像を登録する作業が必要になります
とりあえずペタッと貼りつけますね
詳細は調べてもらうとして、_dataに画像へのパスを登録することが
必要だと思われます。他の設定も色々ありますが、ギャラリーを見て
確認してみて下さい

ContentValues values = new ContentValues();
ContentResolver contentResolver = getContentResolver();
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Images.Media.LATITUDE, loc.getLatitude());
values.put(Images.Media.LONGITUDE, loc.getLongitude());
values.put(Images.Media.TITLE, fileName); // タイトル名(ファイル名にしてます)
values.put("_data", filePath); // 画像の保存されたフルパス
contentResolver.insert(Media.EXTERNAL_CONTENT_URI, values);


2010年3月2日20:25 あき <aki....@gmail.com>:

> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。
>
>

nagamatu

unread,
Mar 2, 2010, 7:31:51 AM3/2/10
to 日本Androidの会
MediaStoreへコンテンツの登録は、MediaScannerConnectionを使
うと便利です。

MediaScannerConnection provides a way for applications
to pass a newly created or downloaded media file to the
media scanner service.

http://developer.android.com/reference/android/media/MediaScannerConnection.html

--

On 3月2日, 午後9:18, watanabe tomo <t...@android-group.jp> wrote:
> 渡辺です
>
> ちょうど今日、その辺つくったので・・・
>
> 保存した画像を登録する作業が必要になります
> とりあえずペタッと貼りつけますね
> 詳細は調べてもらうとして、_dataに画像へのパスを登録することが
> 必要だと思われます。他の設定も色々ありますが、ギャラリーを見て
> 確認してみて下さい
>
> ContentValues values = new ContentValues();
> ContentResolver contentResolver = getContentResolver();
> values.put(Images.Media.MIME_TYPE, "image/jpeg");
> values.put(Images.Media.LATITUDE, loc.getLatitude());
> values.put(Images.Media.LONGITUDE, loc.getLongitude());
> values.put(Images.Media.TITLE, fileName); // タイトル名(ファイル名にしてます)
> values.put("_data", filePath); // 画像の保存されたフルパス
> contentResolver.insert(Media.EXTERNAL_CONTENT_URI, values);
>

> 2010年3月2日20:25 あき <aki.in...@gmail.com>:


>
>
>
> > 日本Androidの会の皆様
>
> > 田中と申します。
> > Androidのギャラリーへの画像反映についてご存知の方がいらっしゃいましたら、よろしくお願いいたします。
>
> > 使用環境はHT-03Aで、APIバージョンは1.6です。
>
> > 以下の命令を使用してSDカードにPNGファイルを書き込むところまでは、
> > ddmsを使用して確認出来たのですが、その後ギャラリーを開いても
> > 画像ファイルが見えません。
> > 何かサムネイル等を作成する方法があるのでしょうか?
> > ちなみに、Androidを再起動するとギャラリーに反映されます。
>
> > FileOutputStream out = new FileOutputStream(fname);
> > bmp.compress(CompressFormat.PNG, 100, out);
>
> > 何かご存知でしたらよろしくお願いいたします。
>
> > 田中

> > aki.in...@gmail.com

あき

unread,
Mar 2, 2010, 7:50:16 AM3/2/10
to 日本Androidの会
渡辺様

田中です。
さっそく貼り付けてあるソースを試してみましたところ、
無事にギャラリーに反映されました!!

ありがとうございます。

ちょうど今日つくっていたとは・・・
すごくタイミングが良くて助かりました。

詳細部分は後ほどリファレンスを見ておきますが、
やはり英文ということもあり、開発は一筋縄ではいきませんね。。。

今回は本当にありがとうございました。
また、何かありましたらよろしくお願いいたします。


On 3月2日, 午後9:18, watanabe tomo <t...@android-group.jp> wrote:

> 渡辺です
>
> ちょうど今日、その辺つくったので・・・
>
> 保存した画像を登録する作業が必要になります
> とりあえずペタッと貼りつけますね
> 詳細は調べてもらうとして、_dataに画像へのパスを登録することが
> 必要だと思われます。他の設定も色々ありますが、ギャラリーを見て
> 確認してみて下さい
>
> ContentValues values = new ContentValues();
> ContentResolver contentResolver = getContentResolver();
> values.put(Images.Media.MIME_TYPE, "image/jpeg");
> values.put(Images.Media.LATITUDE, loc.getLatitude());
> values.put(Images.Media.LONGITUDE, loc.getLongitude());
> values.put(Images.Media.TITLE, fileName); // タイトル名(ファイル名にしてます)
> values.put("_data", filePath); // 画像の保存されたフルパス
> contentResolver.insert(Media.EXTERNAL_CONTENT_URI, values);
>

> 2010年3月2日20:25 あき <aki.in...@gmail.com>:


>
>
>
> > 日本Androidの会の皆様
>
> > 田中と申します。
> > Androidのギャラリーへの画像反映についてご存知の方がいらっしゃいましたら、よろしくお願いいたします。
>
> > 使用環境はHT-03Aで、APIバージョンは1.6です。
>
> > 以下の命令を使用してSDカードにPNGファイルを書き込むところまでは、
> > ddmsを使用して確認出来たのですが、その後ギャラリーを開いても
> > 画像ファイルが見えません。
> > 何かサムネイル等を作成する方法があるのでしょうか?
> > ちなみに、Androidを再起動するとギャラリーに反映されます。
>
> > FileOutputStream out = new FileOutputStream(fname);
> > bmp.compress(CompressFormat.PNG, 100, out);
>
> > 何かご存知でしたらよろしくお願いいたします。
>
> > 田中

> > aki.in...@gmail.com

あき

unread,
Mar 2, 2010, 8:21:01 AM3/2/10
to 日本Androidの会
nagamatu 様

田中です。

助言ありがとうございます。

MediaScannerConnection キーワードで検索すると、
以下にサンプルソースが見つかりました。
http://groups.google.com/group/android-developers/browse_thread/thread/cf41cc88b6eb4393

便利そうなソースですね。
手持ちのソースと見比べて、ギャラリーに反映する仕組みを組み込みたいと思います。

---
田中
aki....@gmail.com


On 3月2日, 午後9:31, nagamatu <nagam...@gmail.com> wrote:
> MediaStoreへコンテンツの登録は、MediaScannerConnectionを使
> うと便利です。
>
> MediaScannerConnection provides a way for applications
> to pass a newly created or downloaded media file to the
> media scanner service.
>

> http://developer.android.com/reference/android/media/MediaScannerConn...

aharisu

unread,
Mar 2, 2010, 6:13:52 PM3/2/10
to android-g...@googlegroups.com
すでに解決済みかもしれませんが、
同じようなことではまった経験があるので追記しておきます。
 
画像の新規作成の場合、今までに出ているContentResolverとMediaScannerConnectionどちらでも可能です。
 
ですが既存の画像を上書きした場合、
どちらを使ってもギャラリーのサムネイルが更新されず、
ギャラリーの画像を選択した場合、サムネイルの画像が短い間拡大表示されたのち、
本来の画像が表示されるといった動作になります。
 
単純な更新作業のみではどうしてもこの動作について解決できなかったので、
画像を上書きする場合はContentResolverを使って、
いったん(おそらく)DB上に登録されているデータを消去したのち、
必要であればロケーションや作成日時などを受け継いだデータを新規作成する。
といった手順でサムネイルも更新することができました。
 
 
本筋から外れた情報かもしれませんが、
自分の経験が誰かの役に立てばと思い書き残しておきます。
それでは。
 
aharisu

2010年3月2日22:21 あき <aki....@gmail.com>:
Reply all
Reply to author
Forward
0 new messages