質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

2592閲覧

Androidにてネットにある画像を読み込みたい、全てが終わるまで動作を止めておきたい

ryuuichi2014

総合スコア115

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2015/12/04 10:53

Androidにてネットにある画像を読み込みたい、全てが終わるまで動作を止めておきたい

のですが、いまいちうまくいきません。

ネットに100個の画像があり、それらをBitmap配列に格納したいのですが、全てが読み終わるまでスプラッシュ画面を表示しておこうとおもいます。

こちらを参考にしましたが、
http://www.cocoaliz.com/android/index.php/10/

これは ImageView を利用したものらしく、Bitmapに格納する方法がいまいち使いかたがわかりません。

どこか参考になるサイトはないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Bitmap配列とは、Bitmapを格納した配列のことで良いでしょうか。

参考サイトを参考にかくならば、

Java

1public class ImageLoader extends AsyncTask<String, String, List<Bitmap>> { 2 3 private ArrayList<String> imageList; 4 5 public ImageLoader(ArrayList<String> list) { 6 // ImageViewを渡す 7 this.imageList = list; 8 } 9 10 11 @Override 12 protected List<Bitmap> doInBackground(String... arg0) { 13 // バックグラウンド処理 14 15 List<Bitmap> bitmapArrayList = new ArrayList<>(); 16 17 Bitmap bitmap = null; 18 19 20 for(String imageurl:imageList) { 21 try { 22 // 指定したURLの画像を読み込む 23 URL URL = new URL(imageurl); 24 InputStream input = URL.openStream(); 25 bitmap = BitmapFactory.decodeStream(input); 26 //bitmap配列に格納 27 bitmapArrayList.add(bitmap); 28 } catch (Exception e) { 29 e.printStackTrace(); 30 } 31 } 32 33 return bitmapArrayList; 34 } 35 36 protected void onPostExecute(List<Bitmap> res) { 37 //バックグラウンド処理が完了した時の処理 38 39 // Bitmapの配列をどうこうしたい処理をここに 40 } 41}

このような感じで行けると思います。
使い方はご参考になさっているサイトにあるように、

Java

1ImageLoader imageLoader = new ImageLoader(imageView); 2 imageLoader.execute("");

のような形式にすれば動きます。
imageLoader.execute()
この中の引数は利用していないので適当なものでも走ります。

ここが結構肝で、基本的にAsyncTaskは extendsしてあるAsyncTask<○,○,○>の<>内部分が大事で

左から順に

  • doInBackgroundメソッドの引数の型,(backGroudで行いたい作業の際に渡すもの)
  • onProgressUpdateメソッドの引数の型,(Progressを表示している場合の表示のアップデートの際に渡すもの)
  • onPostExecuteメソッドの戻り値の方, (全ての処理が終わったさいに返すもの)

今回はdoInBackgroundの中のものはImageLoaderをインスタンス化している際に与えている為、第二引数は利用していません。

基本的になぜこんなものが必要か、という部分を語ると大変になってくるので割愛しますが、最近のAndroid開発ではAsyncTaskではなく、どちらかというとAsyncTaskLoaderクラスを使うことのほうが多いです。

最近の開発者はこのAsyncTaskの引数部分があまりに面倒なので使いません。

AsyncTaskについては、

AsyncTask

AsyncTaskLoaderについては、

AsyncTaskLoader

を確認していただければ初心者でもわかりやすい解説になっていると思います。

後は英語ですが公式リファレンスをご確認ください。

http://developer.android.com/intl/ja/reference/android/content/AsyncTaskLoader.html

http://developer.android.com/intl/ja/reference/android/os/AsyncTask.html

投稿2015/12/04 11:55

編集2015/12/16 13:45
einzbern00

総合スコア30

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryuuichi2014

2015/12/04 14:25

すごく分かりやいです、ありがとうございます!!!( ´ ▽ ` )ノ 理解できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問