画像のローディングとかには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: