画像のローディングとかにはAsyncTaskをextendsしたクラスを使って非同期的に処理を行うのが一般的です。
で、そこにprogressBarを入れたかったんだがやってる人全くいないのな。
概念的にはこんな感じ。
あとProgressBarのコンストラクタには何故かContextを渡さないといけないので、インナークラスにしないと色々都合が悪いみたい。
色々ググってみたけどどこにもそれっぽいのが無かった。
http://d.hatena.ne.jp/Kazzz/20101027/p1
http://lablog.lanche.jp/archives/220
http://techbooster.jpn.org/andriod/ui/659/
結局プログレスバーについてはActivity内で処理するしかないの?
ところで関係ないんだけど忍者ブログの日記編集画面がバージョンアップされました。
一見良くなったような気がするけど、なんかカーソルが言うことを聞かなくなったりしてユーザビリティはダウン。
Google検索とかもそうだけど最近改悪が流行りなんですかね。
で、そこにprogressBarを入れたかったんだがやってる人全くいないのな。
概念的にはこんな感じ。
public class getImageTask extends AsyncTask<String, Void, Bitmap> { // コンストラクタ private ImageView imageView; public getImageTask(ImageView imageView) { this.imageView = imageView; } // 事前処理 @Override public void onPreExecute() { this.imageView.setImageBitmap(new ProgressBar()); } // メイン処理 @Override protected Bitmap doInBackground(String... urls) { image = HttpClient.getImage(urls[0]); } // 後で実行する処理 @Override protected void onPostExecute(Bitmap result) { this.imageView.setImageBitmap(result); } }ところがそもそもProgressBarはImageViewに入れられず、予めレイアウト上にプログレスバー用のビューを別途作っておかねばならないらしい。
あとProgressBarのコンストラクタには何故かContextを渡さないといけないので、インナークラスにしないと色々都合が悪いみたい。
色々ググってみたけどどこにもそれっぽいのが無かった。
http://d.hatena.ne.jp/Kazzz/20101027/p1
http://lablog.lanche.jp/archives/220
http://techbooster.jpn.org/andriod/ui/659/
ImageDownloadTask task = new getImageTask((ImageView) findViewById(R.id.hoge)) task.execute('http://example.com/hoge.png');みたいなかんじでどこからでも自由に使える画像ローダにしたかったんだが。
結局プログレスバーについてはActivity内で処理するしかないの?
ところで関係ないんだけど忍者ブログの日記編集画面がバージョンアップされました。
一見良くなったような気がするけど、なんかカーソルが言うことを聞かなくなったりしてユーザビリティはダウン。
Google検索とかもそうだけど最近改悪が流行りなんですかね。
PR
トラックバック
トラックバックURL: