忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/08/21 19:12 |
Android2.2 汎用プログレスバーを作りたかった
画像のローディングとかにはAsyncTaskをextendsしたクラスを使って非同期的に処理を行うのが一般的です。

で、そこに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


2011/08/19 22:37 | Comments(0) | TrackBack(0) | Android

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<今週の実績 2011/08/21 | HOME | データベーススペシャリスト試験合格発表>>
忍者ブログ[PR]