• ベストアンサー

androidアプリ開発 ネット上の画像表示

お世話になっております。 前回 http://okwave.jp/qa/q6829605.html こちらで質問させて頂き、リストに画像を表示することに成功したのですが、 画像URLが"~~.JPG"(大文字)であったり、画像以外のファイルURLである場合、 エラーが出て強制終了してしまいます。 これを回避するにはどうしたらよいでしょうか。 問題のある画像URLの場合はダミーの画像ファイルを代わりに表示させるか、 なにも表示させないかにしたいです。 どうぞよろしくお願いします。

  • Java
  • 回答数4
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.4

ふと思ったのですが。 アクセスするRSSデータは、UTF-8でエンコードされていますか。そのへんの、文字コードによる問題はありませんか。 また、問題の大文字のJPEGファイル名ですが、全角文字が混ざっていたりすることはないでしょうか。あるいは、小文字でアクセスすると表示される、というようなことはないでしょうか。 ParseExceptionでエラーになっているというのは、プログラムの問題というより、元データに問題がある可能性も考えたほうがいいでしょう。

Javako
質問者

お礼

good-failure様 お世話になっております。 あれから色々と調べてみたところ、 やはり元データに問題があったようでした。 毎度毎度ご丁寧にありがとうございます!

その他の回答 (3)

noname#161640
noname#161640
回答No.3

ちょっとよくわからなくなってきましたね……。 item.getProfileImageUrlで得られる値(URL)はどうなっているのか確認をして、そのアドレスで正しくイメージが取得されるか調べる、ということぐらいしか思いつかないのですが……。 ちょっと思ったのですが、エラーが起こる要素はきまっているのでしょうか。つまり、必ず同じ項目でエラーになりますか。あるいは、XMLの内容がどう変わってもおかしくなるのでしょうか。そのあたりで、どういう値の時にエラーが起こるかを探ってみるしかないと思います。 例えば、大文字で名前が指定されているとエラーになるとか、そういうエラーになる条件を探りだす、ということですね。表示される場合とされない場合の値の違いを調べてみてはいかがでしょう。それぐらいしか今は思いつかないのですが。

Javako
質問者

お礼

good-failure様 毎度、お世話になっております。 エラーが起こる要素はきまっております。 そのエラーが出る画像はJPG(大文字)形式であり、 また、リストでいうと、21項目目に表示されるものです。 パーサーで、20項目目までしか表示されないようにすると、 エラーも出ず、問題ないのですが、21項目目まで表示されるようにすると エラーが出てしまいます。 しかし、GIF(大文字)の画像ですと、正常に表示されることを確認いたしました。 他の画像も表示されているので、 item.getProfileImageUrlで得られる値は正常に取得できていると思います。 先ほどのお礼にも記載しましたが、 task.execute("エラーの出てしまう画像URL"); だと、リストの画像がすべてエラーの出てしまう画像になりますが、 エラーも出ず、表示されます。 お手を煩わしてしまって申し訳ございません。 またなにか分かれば補足いたします。

noname#161640
noname#161640
回答No.2

エラーメッセージというのは、そういうことではなくて、Java仮想マシンで実行時に標準出力に書きだされるコードです。ひょっとして、デバッグモードで実行したことはないですか? デバッグモードで実行してエラーが起こると、コンソールにエラーメッセージが吐き出されるはずですが……。それを追っていくと、どの部分で例外が発生しているのかわかります。もしやったことがないようなら試してみてください。デバッグは、開発の基本ですので、基本的なやり方は理解しておきましょう。 また、そのコード部分ですが、例外処理というのはわかりませんか? こういうものです。 try { ……ここに実行する処理を書く…… } catch(Exception e){ ……ここにエラー時の処理を書く…… } 先ほどのURLからImageViewを生成する部分を、このtry {……}のところにいれて動かしてみてください。このtryの後の{}内に書いた処理でエラーが起こると、そのままcatchにジャンプし、そこでエラーの処理を行うようになります。

Javako
質問者

お礼

good-failuregood-failure様 お世話になっております。 なにからなにまでお手間を取らせてしまい申し訳ございません。 エラーメッセージは以下の通りです。 ERROR/AndroidRuntime(927): Uncaught handler: thread main exiting due to uncaught exception ERROR/AndroidRuntime(927): java.lang.RuntimeException: Unable to start activity ComponentInfo{jp.co.test/jp.co.test.MainActivity}: java.lang.RuntimeException: org.xmlpull.v1.XmlPullParserException: Error parsing document. (position:line -1, column -1) caused by: org.apache.harmony.xml.ExpatParser$ParseException: At line 1214, column 49: not well-formed (invalid token) TwitterAdapterクラスの ImageView imageView = (ImageView)view.findViewById(R.id.icon); // バックグラウンドで画像取得 DownloadTask task = new DownloadTask(imageView); task.execute(item.getProfileImageUrl()); の task.execute(item.getProfileImageUrl());を、 task.execute("http://test.jpg");にすると、 リストの画像がすべてhttp://test.jpgになりましたので、 try{ DownloadTask task = new DownloadTask(imageView); task.execute(item.getProfileImageUrl()); }catch(Exception e){ DownloadTask task = new DownloadTask(imageView); task.execute("http://test.jpg"); } としてみましたが、やはり、画像以外のURLが読み込まれるとエラーが出て終了してしまいました。 またなにか勘違いをしているかもしれません。 ためしに、          task.execute("エラーの出てしまう画像URL"); にすると、エラーの出てしまう画像URLが問題なく表示されました。 お手数をお掛けしますがどうぞよろしくお願いします。

Javako
質問者

補足

補足です。 さっきまでGIF(大文字)の画像が表示できていましたが、 今確認したところ、表示されなくなっていました。

noname#161640
noname#161640
回答No.1

>エラーが出て強制終了してしまいます。 このような場合は、発生した例外のメッセージを掲載するように心がけましょう。エラーメッセージは、エラー解決の一番の材料なのですから。 一般的にはですが、インスタンスのが生成できずnullであるために例外が発生しているのだろうと思えます。現在、どのようなコードになっているのかわからないのでなんともいえないのですが、URLからオブジェクトを生成するあたりをtry構文で例外処理を組み込み、例外が起こったらcatch内でダミー画像を表示する処理を用意することになるでしょう。

Javako
質問者

お礼

good-failure様 いつもお世話になっております。 焦ってしまって、色々と抜けてしまい申し訳ございませんでした。 エラーメッセージは "Sorry! The application ~ has stopped unexpectedly.Please try again." です。 コードは ttp://labs.techfirm.co.jp/android/cho/1079 こちらのサイト様を参考にしております。

Javako
質問者

補足

ごめんなさい、またレスが途中で切れてしまっていまあした。 思いついたのが、Adapterクラスで ImageView imageView = (ImageView)view.findViewById(R.id.icon); // バックグラウンドで画像取得 DownloadTask task = new DownloadTask(imageView); task.execute(item.getProfileImageUrl()); となっているのを ImageView imageView = (ImageView)view.findViewById(R.id.icon); // バックグラウンドで画像取得 DownloadTask task = new DownloadTask(imageView); if(imageView != null){ task.execute(item.getProfileImageUrl()); }else{ task.execute("https://www.sample.png"); とすることでしたが、上手くいきませんでした。

関連するQ&A

  • Androidアプリでネット上の画像を表示

    また、お世話になります Androidアプリを勉強しながら作成しております 以前、ネット上にある画像をアプリに読込して表示する方法を聞いて、勉強しながら表示する事が出来ました。 しかし、たまに取り損ねる事がありこの回避方法を教えてください。 現在のソース String url = "http://www.hogehoge.com/hoge.jpg"; try { URL url = new URL(url); InputStream input = url.openStream(); Bitmap bitmap = BitmapFactory.decodeStream(input); Bitmap bitmap1 = Bitmap.createScaledBitmap(bitmap, 100, 75, true); getimg1.setImageBitmap(bitmap1); } catch (Exception ex) { ex.printStackTrace(); } finally { } 【知りたい事】 ネット上にある(必ずあるのが条件)画像を取り損ねる事があるので、その対応方法を知りたい。 【開発環境】 eclipse galaxy S Windows vista スペルミス等がありましたら、ご了承ください。 宜しくお願します。

    • ベストアンサー
    • Java
  • フォーム上に画像表示したい2

    お世話になります。 Access2010 内容は以下の質問をさせて頂いております。 http://okwave.jp/qa/q9117910.html イメージが付きづらかったので画像を添付させて頂きます。 リストボックス選択時に添付ファイル(画像)をフォーム上に 表示させたいです。 テーブルのデータ型で「添付ファイル」を指定し、ファイルは 画像ファイルを追加済みなので、それを表示させたいところです。 ご教示の程、宜しくお願い致します。

  • 画像URLを表示させるには?

    画像URLを表示させるには 画像にマウスを置き 右クリックして プロパティをクリックするとURLが表示される と教えられたのですが それをやっても 私の場合  (例えばですが) 「IMG.1234.jpg」のような表示しか出ず これは URLではないようなのですがどうしたら URLを表示させることが出来ますでしょうか?

  • Androidのアプリについて

    画像を保存できなかったのでURLを載せます。 Androidのアプリについて。ホーム画面のアイコンを探しています。 この赤で囲ったアイコンはかんというアプリなんでしょうか? わかる方教えてください。 またこのようなホーム画面はどのように作るか分かる方教えてください。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1376997443

  • 【PHP】画像が表示されず「×」が表示される

    以下のようなコードで、ブラウザに画像を表示させようとしたところ、画像が表示されず、代わりに「×」印が表示されました。どうすれば画像が表示できるのでしょうか? <?php $img = file_get_contents('./test.jpg'); header('Content-type: image/jpeg'); echo $img; ?> 上記のコードは以下のサイトを参考に書きました(というより、ほぼそのままコピペしただけです。) http://ysklog.net/php/1575.html http://php.birdlab.com/tips/1 【備考】 ・OSはWindows7、XAMPPを導入して動かしています。IE11とChromeのバージョン 37.0.2062.120 m(現時点の最新版のようです)で試しましたがどちらも同じ結果でした。(正確には、Chromeの方は×印ではなく、文字1文字分くらいの大きさの「ファイル」のような画像でしたが…(ネットを見ている際に、画像ファイルが表示されない時に代わりに表示されるアレです)) ・表示した画像ファイル test.jpg はphpファイルと同じフォルダに置いてあります。ファイル名が違う(そもそも存在しないファイル名を指定している)場合には、エラーメッセージが表示されましたので、ファイルの存在は認識されているようです。 ・readfile関数を使っても駄目でした。 ・画像ファイルが壊れているということはありません(画像ファイルのアドレスを直接指定した場合はきちんと表示されます) コードの問題ではなく、環境設定の問題だと思いますが、どこに問題があるのかさっぱりわかりません。よろしくお願い致します。

    • ベストアンサー
    • PHP
  • Apacheの画像が表示できません。

    Apache1.3.27のIndexで、 Test0904-01-pbg4.jpg というファイルをクリックしたりURL指定しても 表示できません・・ Test0904-02-navison.jpg というファイルは表示できるにもかかわらずです。。 HTMLを作成して、image srcタグで指定しても他の 画像は表示できますが、この名前の画像だけ表示 できないです。 IEで右クリックし対象をファイルに保存した後は、 画像が見れるのですが・・ こんな現象にあった方いらっしゃいますか? パーミッションは全て同じ、同じパスにある画像 なのになんで、1つだけ見れないのか・・(T_T)

  • 画像の表示で…

    htmlタグでの画像の表示は<IMG SRC="***">で出来ると思うのですが、 htmlで画像の表示をしようとするとエラーになってしまいます。 <IMG SRC="ファイル名.jpg">だと思うのですがどうすればいいのかわかりません。 いまデスクトップの新しいフォルダに「aa.jpg」というファイルがあります。 だから<IMG SRC="aa.jpg">としてみても、エラーになってしまいます。 当方は全くの初心者なんで… どうやったら画像を表示できるか教えてください。

    • ベストアンサー
    • HTML
  • ネットショップのなかで商品画像を並べて表示させています。

    ネットショップのなかで商品画像を並べて表示させています。 画像ファイル名の指定は、商品数が多いためひとつひとつ確認しながら指定するのではなく、 aaa_1.jpg aaa_2.jpg aaa_3.jpg aaa_4.jpg bbb_1.jpg bbb_2.jpg bbb_3.jpg bbb_4.jpg ccc_1.jpg ccc_2.jpg ccc_3.jpg ccc_4.jpg と決まった法則で記載しています(aaa_1の_1はaaaという商品の1枚目、_2は2枚目を意味します)。 ところが商品によって画像数が違うため、たとえばbbbという商品の写真が3枚しかない場合は、当然bbb_4と指定したところが × と画像がないことが表示されて見栄えがよくありません。 これを避けるため、画像がない場合は空白を表示させるか、何か別の写真たとえば画像準備中と記載のある写真を統一的に載せる方法はありませんか?

  • ACCEESの抽出結果にアイコンを表示させる方法

    Access2007をWindows7での使用です。 抽出結果のレコードのうち、画像ありの商品にアイコンを表示させたいのですがよい方法が思いつきませんので教えてください。 具体的には以下のような商品テーブル(T_abc)に対し、「りんご」で検査をしたとき (e.jpg は無画像のダミーファイルです) 商品コード  商品名       画像 1234      りんご       ringo.jpg 5678     りんごジュース   e.jpg 2323      とまと       tomato.jpg 3232     やきりんご     yakiringo.jpg ------------------------------------- 抽出結果を以下のようにフォーム(F_abc)に表示させたい (画像のある商品であることを表示する目的です) 商品コード  商品名 1234      りんご       小さいカメラのアイコン画像 5678     りんごジュース 3232     やきりんご     小さいカメラのアイコン画像 クエリ(Q_abc)を使い商品コードと商品名は表示できるのですが画像ファイル名がダミー(e.jpg)以外の時に小さいカメラのアイコン画像を表示させる方法がわかりません。 フォーム上にイメージフィールドを設ければよいのでしょうか? はたまた、商品テーブルにフィールドを追加し、画像ファイル名がダミーでない時にアイコンを更新クエリで書き込むようにするとよいのでしょうか? 良い方法がございましたら教えていただきたく、よろしくお願いいたします。   

  • accessでの画像表示

    Access初心者です。 知り合いに頼まれ、「お客さんの情報を選択すると、その人が買った商品の画像が表示される」というのを作ろうとしています。 データから検索して、リストボックスに「特定のお客さんが購入した商品を表示する」ところまではできたのですが、そこから画像を表示する方法がわかりません。 理想としては、リストボックス内の購入商品を選択すると、OLEオブジェクトのところに、リストボックス内で選択した商品の画像が表示されるというものです。 商品のデータテーブルに、画像のファイル名を入れて、mdbファイルと同じ階層にあるフォルダにjpg形式で商品画像を保存しておき、それを表示する。という感じでしたいです。 どんな風にやれば良いのでしょうか? 参考になるコードなどがあれば是非知りたいです。 それと、今回はAccessでやろうとしていますが、これってExcelでやった方が良いんでしょうか・・・?

専門家に質問してみよう