ImageViewで画像表示について

485 views
Skip to first unread message

littleorc

unread,
Aug 26, 2010, 5:19:42 AM8/26/10
to 日本Androidの会
こんにちは

今はDBから、画像名を取得して、画像を表示するつもりですが、どうすればいいですか?
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.sample);

ImageView imageView = new ImageView(this);

普通なら、samlpleはres/drawablexxx配下のファイル名です、 今は変数で、ファイルを取得したいですが、
やり方わからないです、どなたが教えてくれませんか?

BitmapFactory.decodeFile(path)ならできますか?これはsdカードからファイルを取得するのような気がするけど、
/sdcard/picture/xxx

もしこのメソッドでアプリ内部の画像も表示できれば、pathはなんでしょうか? /data/???


日本語よくわからないです、よろしくお願いします。

mokkouyou

unread,
Aug 26, 2010, 5:48:24 AM8/26/10
to android-g...@googlegroups.com
mokkouyouです。

MediaStore.Images.ImageColumns.DATAにパスが入っています。



2010年8月26日18:19 littleorc <shanliang...@yahoo.co.jp>:

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




--
mokkouyou
mokk...@gmail.com

littleorc

unread,
Aug 26, 2010, 6:29:29 AM8/26/10
to 日本Androidの会
返事をいただき、ありがとうございます。

まだよくわかりませんが、 もっと具体的なものを教えてもらえませんか?

MediaStore.Images.ImageColumns.DATA なら、どうやって使いますか?

Bitmap bitmap =
BitmapFactory.decodeFile(MediaStore.Images.ImageColumns.DATA,
options);
↑これなら、駄目ですね。。



On 8月26日, 午後6:48, mokkouyou <mokkou...@gmail.com> wrote:
> mokkouyouです。
>
> MediaStore.Images.ImageColumns.DATAにパスが入っています。
>
> 2010年8月26日18:19 littleorc <shanliang2002ja...@yahoo.co.jp>:
>
>
>
> > こんにちは
>
> > 今はDBから、画像名を取得して、画像を表示するつもりですが、どうすればいいですか?
> > Bitmap bitmap =
> > BitmapFactory.decodeResource(getResources(),
> > R.drawable.sample);
>
> > ImageView imageView = new ImageView(this);
>
> > 普通なら、samlpleはres/drawablexxx配下のファイル名です、 今は変数で、ファイルを取得したいですが、
> > やり方わからないです、どなたが教えてくれませんか?
>
> > BitmapFactory.decodeFile(path)ならできますか?これはsdカードからファイルを取得するのような気がするけど、
> > /sdcard/picture/xxx
>
> > もしこのメソッドでアプリ内部の画像も表示できれば、pathはなんでしょうか? /data/???
>
> > 日本語よくわからないです、よろしくお願いします。
>
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
> > このグループから退会するには、android-group-j...@googlegroups.com<android-group-japan%2Bunsu...@googlegroups.com>にメールを送信してください。
> > 詳細については、http://groups.google.com/group/android-group-japan?hl=jaからこのグループにアクセスしてください。
>
> --
> mokkouyou
> mokkou...@gmail.com

mokkouyou

unread,
Aug 26, 2010, 6:40:25 AM8/26/10
to android-g...@googlegroups.com
mokkouyouです。

MediaStore.Images.ImageColumns.DATAはカラム名の定数です。
ファイル名を取得するついでにパスを取得すればいいのでは?ということになります。

Cursor cursor =  MediaStore.Images.Media.query(mResolv,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.TITLE,
MediaStore.Images.ImageColumns.DATA }, null, null);

とか。

ひょっとして、
DB=ContentProviderではなかったりしますか?
だとしたら見当違いの回答ですいません・・・


2010年8月26日19:29 littleorc <shanliang...@gmail.com>:
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。




--
mokkouyou
mokk...@gmail.com

littleorc

unread,
Aug 26, 2010, 9:25:42 PM8/26/10
to 日本Androidの会
お疲れ様、littleorcです。

多分違います、僕の説明は分かりにくくて、ごめんなさい。

DBなら、SQLiteでアプリのDBとtableを作り、画像ファイル名をtableに保存し、DBから画像名を取得する。
DBから画像名を取得するもできました、それから、ImageViewでこの画像を表示したいです。
例えば、String imageName = "xxxxx";

「BitmapFactoryでどうやって画像を取得すればいいですか?」を聞きたいです。
画像は普通に、res/drawable-mdpiとかの配下に置いてます。

---------------------------------------------
Bitmap bitmap =
BitmapFactory.decodeResource(getResources(),
R.drawable.sample);

ImageView imageView = new ImageView(this);
---------------------------------------------
↑普通の資料見るとこんな感じですよね、だが、「sample」はresourceのIDですよね?普通のString変数とか使えないでしょうか?

説明が下手です、申し訳ありません。


On 8月26日, 午後7:40, mokkouyou <mokkou...@gmail.com> wrote:
> mokkouyouです。
>
> MediaStore.Images.ImageColumns.DATAはカラム名の定数です。
> ファイル名を取得するついでにパスを取得すればいいのでは?ということになります。
>
> Cursor cursor = MediaStore.Images.Media.query(mResolv,
> MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {
> MediaStore.Images.ImageColumns._ID,
> MediaStore.Images.ImageColumns.TITLE,
> MediaStore.Images.ImageColumns.DATA }, null, null);
>
> とか。
>
> ひょっとして、
> DB=ContentProviderではなかったりしますか?
> だとしたら見当違いの回答ですいません・・・
>
> 2010年8月26日19:29 littleorc <shanliang2002ja...@gmail.com>:
> > <android-group-japan%2Bunsu...@googlegroups.com<android-group-japan%252Buns...@googlegroups.com>
> > >にメールを送信してください。
> > > > 詳細については、http://groups.google.com/group/android-group-japan?hl=ja
> > からこのグループにアクセスしてください。
>
> > > --
> > > mokkouyou
> > > mokkou...@gmail.com
>
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。

littleorc

unread,
Aug 26, 2010, 9:39:18 PM8/26/10
to 日本Androidの会
お疲れ様、littleorcです。

多分違います、僕の説明は分かりにくくて、ごめんなさい。

DBなら、SQLiteでアプリのDBとtableを作り、画像ファイル名をtableに保存し、DBから画像名を取得する。
DBから画像名を取得するもできました、それから、ImageViewでこの画像を表示したいです。
例えば、String imageName = "xxxxx";

「BitmapFactoryでどうやって画像を取得すればいいですか?」を聞きたいです。
画像は普通に、res/drawable-mdpiとかの配下に置いてます。

---------------------------------------------
Bitmap bitmap =
BitmapFactory.decodeResource(getResources(),
R.drawable.sample);

ImageView imageView = new ImageView(this);
---------------------------------------------
↑普通の資料見るとこんな感じですよね、だが、「sample」はresourceのIDですよね?普通のString変数とか使えないでしょうか?

説明が下手です、申し訳ありません。


On 8月26日, 午後7:40, mokkouyou <mokkou...@gmail.com> wrote:
> mokkouyouです。
>
> MediaStore.Images.ImageColumns.DATAはカラム名の定数です。
> ファイル名を取得するついでにパスを取得すればいいのでは?ということになります。
>
> Cursor cursor = MediaStore.Images.Media.query(mResolv,
> MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {
> MediaStore.Images.ImageColumns._ID,
> MediaStore.Images.ImageColumns.TITLE,
> MediaStore.Images.ImageColumns.DATA }, null, null);
>
> とか。
>
> ひょっとして、
> DB=ContentProviderではなかったりしますか?
> だとしたら見当違いの回答ですいません・・・
>
> 2010年8月26日19:29 littleorc <shanliang2002ja...@gmail.com>:
> > <android-group-japan%2Bunsu...@googlegroups.com<android-group-japan%252Buns...@googlegroups.com>
> > >にメールを送信してください。
> > > > 詳細については、http://groups.google.com/group/android-group-japan?hl=ja
> > からこのグループにアクセスしてください。
>
> > > --
> > > mokkouyou
> > > mokkou...@gmail.com
>
> > --
> > このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
> > このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。

littleorc

unread,
Aug 26, 2010, 9:42:35 PM8/26/10
to 日本Androidの会
littleorcです。

よく考えると、なんとなく分かるような気がする。
今ファイル名を取得しましたから、 mokkouyouさん言うとおり、
Cursor cursor = MediaStore.Images.Media.query(mResolv,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.TITLE,
MediaStore.Images.ImageColumns.DATA }, null, null);
↑でresourceのIDを取得できますよね、それから、BitmapFactory.decodeResourceで画像を取得できますよね?

試します、ありがとうごいます 。

mokkouyou

unread,
Aug 26, 2010, 9:52:57 PM8/26/10
to android-g...@googlegroups.com
mokkouyouです。

すいません、勘違いしていたようですね。

変数名から、リソースIDが取得したい場合
getResources().getIdentifier("icon", "drawable", getPackageName());
とするとintの値が取得出来ます。
※上記例だと、drawable/iconのidが取得可能

drawableに保持する必要が無ければ、
assetsに配置した方がいいと思いますが


2010年8月27日10:25 littleorc <shanliang...@gmail.com>:
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。




--
mokkouyou
mokk...@gmail.com

yokmama

unread,
Aug 26, 2010, 9:43:27 PM8/26/10
to android-g...@googlegroups.com
夜子ままです

BitmapFactory.decodeFile(String pathName)
BitmapFactory.decodeStream(InputStream is)

こういうことですか?


2010年8月27日10:39 littleorc <shanliang...@gmail.com>:
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


mokkouyou

unread,
Aug 26, 2010, 9:58:07 PM8/26/10
to android-g...@googlegroups.com
mokkouyouです。

すいません、よくわからないのですが、

DBには、ファイル名が保存してあるとのことですが、

このファイル名というのは、たとえば、icon.pngの様な実ファイルベースものでしょうか?
それとも、drawable/icon(または、icon)のようなID文字列でしょうか?

これによって話が変わってくると思います。

ファイル名があって、実ファイルベースでやりたいのであれば、素直にassetsに配置するのがいいですし、
ID文字列であれば先に挙げた様に、String→int変換して
BitmapFactory.decodeResource(getResources(),
                                       R.drawable.sample);

のように利用すればいいと思います。

MediaStore.Images.Media.queryの話は忘れてください。
以上よろしくお願いいたします。


2010年8月27日10:42 littleorc <shanliang...@gmail.com>:
littleorcです。

よく考えると、なんとなく分かるような気がする。
今ファイル名を取得しましたから、 mokkouyouさん言うとおり、
Cursor cursor =  MediaStore.Images.Media.query(mResolv,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {
 MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.TITLE,
 MediaStore.Images.ImageColumns.DATA }, null, null);
↑でresourceのIDを取得できますよね、それから、BitmapFactory.decodeResourceで画像を取得できますよね?

試します、ありがとうごいます 。



On 8月27日, 午前10:25, littleorc <shanliang2002ja...@gmail.com> wrote:
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。




--
mokkouyou
mokk...@gmail.com

littleorc

unread,
Aug 26, 2010, 9:42:46 PM8/26/10
to 日本Androidの会
littleorcです。

よく考えると、なんとなく分かるような気がする。
今ファイル名を取得しましたから、 mokkouyouさん言うとおり、
Cursor cursor = MediaStore.Images.Media.query(mResolv,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.TITLE,
MediaStore.Images.ImageColumns.DATA }, null, null);
↑でresourceのIDを取得できますよね、それから、BitmapFactory.decodeResourceで画像を取得できますよね?

試します、ありがとうごいます 。



On 8月27日, 午前10:25, littleorc <shanliang2002ja...@gmail.com> wrote:

littleorc

unread,
Aug 26, 2010, 10:02:29 PM8/26/10
to 日本Androidの会
littleorcです。

よく考えると、なんとなく分かるような気がする。
今ファイル名を取得しましたから、 mokkouyouさん言うとおり、
Cursor cursor = MediaStore.Images.Media.query(mResolv,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.TITLE,
MediaStore.Images.ImageColumns.DATA }, null, null);
↑でresourceのIDを取得できますよね、それから、BitmapFactory.decodeResourceで画像を取得できますよね?

試します、ありがとうごいます 。



On 8月27日, 午前10:25, littleorc <shanliang2002ja...@gmail.com> wrote:

littleorc

unread,
Aug 26, 2010, 10:04:29 PM8/26/10
to 日本Androidの会
littleorcです。

よく考えると、なんとなく分かるような気がする。
今ファイル名を取得しましたから、 mokkouyouさん言うとおり、
Cursor cursor = MediaStore.Images.Media.query(mResolv,
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.TITLE,
MediaStore.Images.ImageColumns.DATA }, null, null);
↑でresourceのIDを取得できますよね、それから、BitmapFactory.decodeResourceで画像を取得できますよね?

試します、ありがとうごいます 。



On 8月27日, 午前10:25, littleorc <shanliang2002ja...@gmail.com> wrote:

yokmama

unread,
Aug 26, 2010, 10:05:27 PM8/26/10
to android-g...@googlegroups.com
夜子ままです

littleorc さん、もしよければ 日本語の文章の下に中国語もつけてみてはどうですか?
私もよく海外のデベロッパとやりとりするときうまく伝えられなくて困ることがあります。
なので、そういうときは無理しないで、伝えられなかった部分はそのまま日本語で
下のほうつけたりします。

中国語ですが私も少しは読めるし、他にも分かる人がいるかもししれません、
だからなんとかなるとおもいますよ。




2010年8月27日11:02 littleorc <shanliang...@gmail.com>:
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。


mokkouyou

unread,
Aug 26, 2010, 10:10:08 PM8/26/10
to android-g...@googlegroups.com
mokkouyouです。

関係ない皆様には連投でご迷惑をおかけいたします。

>Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
>                                      R.drawable.sample);
>
>                       ImageView imageView = new ImageView(this);


で、sampleが入っていると最初にありましたね。

int sampleId = getResources().getIdentifier("sample", "drawable", getPackageName());
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
                                      sampleId );

でいいと思います。

以上よろしくお願いいたします。
mokkouyou
mokk...@gmail.com

littleorc

unread,
Aug 26, 2010, 10:13:41 PM8/26/10
to 日本Androidの会
littleorcです。

今の状況なら、
> このファイル名というのは、たとえば、icon.pngの様な実ファイルベースものでしょうか?
↑こんな感じです。
> ファイル名があって、実ファイルベースでやりたいのであれば、素直にassetsに配置するのがいいですし、
もしassetsに置いたら、どうやって取得しますか?decodeFileでパスから取得できますか? であれば、パスはどんな感じでしょうか?

以上です
よろしくお願いします。



On 8月27日, 午前10:58, mokkouyou <mokkou...@gmail.com> wrote:
> mokkouyouです。
>
> すいません、よくわからないのですが、
>
> DBには、ファイル名が保存してあるとのことですが、
>
> このファイル名というのは、たとえば、icon.pngの様な実ファイルベースものでしょうか?
> それとも、drawable/icon(または、icon)のようなID文字列でしょうか?
>
> これによって話が変わってくると思います。
>
> ファイル名があって、実ファイルベースでやりたいのであれば、素直にassetsに配置するのがいいですし、
> ID文字列であれば先に挙げた様に、String→int変換して
> BitmapFactory.decodeResource(getResources(),
> R.drawable.sample);
> のように利用すればいいと思います。
>
> MediaStore.Images.Media.queryの話は忘れてください。
> 以上よろしくお願いいたします。
>
> 2010年8月27日10:42 littleorc <shanliang2002ja...@gmail.com>:
> > > > > <android-group-japan%2Bunsu...@googlegroups.com<android-group-japan%252Buns...@googlegroups.com>
> > <android-group-japan%252Buns...@googlegroups.com<android-group-japan%25252Bun...@googlegroups.com>

littleorc

unread,
Aug 26, 2010, 10:20:13 PM8/26/10
to 日本Androidの会
littleorcです。

ありがとございます。

なんとなく、どんどん解決できるような気がする。技術的な話なら、中国語にも説明しにくいかもしれません、
っていうのは、僕のコミュニケーション力が全然ないです。。。

On 8月27日, 午前11:05, yokmama <hijirinhiji...@gmail.com> wrote:
> 夜子ままです
>
> littleorc さん、もしよければ 日本語の文章の下に中国語もつけてみてはどうですか?
> 私もよく海外のデベロッパとやりとりするときうまく伝えられなくて困ることがあります。
> なので、そういうときは無理しないで、伝えられなかった部分はそのまま日本語で
> 下のほうつけたりします。
>
> 中国語ですが私も少しは読めるし、他にも分かる人がいるかもししれません、
> だからなんとかなるとおもいますよ。
>
> 2010年8月27日11:02 littleorc <shanliang2002ja...@gmail.com>:
> > > > > <android-group-japan%2Bunsu...@googlegroups.com<android-group-japan%252Buns...@googlegroups.com>
> > <android-group-japan%252Buns...@googlegroups.com<android-group-japan%25252Bun...@googlegroups.com>

littleorc

unread,
Aug 26, 2010, 10:31:53 PM8/26/10
to 日本Androidの会
littleorcです。
連投は僕がやっちゃったらしい、皆さんに迷惑をかけて、申し訳ありません。

> >Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
> > R.drawable.sample);
>
> > ImageView imageView = new ImageView(this);
>
↑やって見ました、できました。ありがとうございました。

PS:openSource最高です~
> mokkou...@gmail.com
Reply all
Reply to author
Forward
0 new messages