現在、Asynctask の拡張イメージをダウンロードするクラスがあります。ユーザーに画像がそのスペースに読み込まれていることを示す小さな進行状況バーを実装したいと思います。Asynctask クラスをクラス アクティビティ内に配置しようとしました。問題は、クラスを静的にする必要があるクラスを呼び出すことです。しかし、静的クラスを配置すると、進行状況ダイアログを制御できません。
私のクラス DownloadImage:
public class DownloadImages extends Activity{
public class DownloadImage extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
// progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
public DownloadImage(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
Log.e("TAG","IMAGEN CARGADA");
}
// protected void onPreExecute(){
// }
}
}
ProgressBar を作成するには、クラスをアクティビティにする必要があると思います。
progressBar = new ProgressBar(activity, null, android.R.attr.progressBarStyleSmall);
これは私が私の問題に対して作成した解決策です:
public class DownloadImages extends Activity{
ProgressBar progressBar = new ProgressBar(DownloadImages.this, null, android.R.attr.progressBarStyleSmall);
public class DownloadImage extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImage(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
Log.e("TAG","IMAGEN CARGADA");
}
protected void onPreExecute(){
progressBar.setVisibility(View.VISIBLE);
}
}
}
問題は、DownloadImage を呼び出す場合、このクラスは静的でなければならないことですが、静的に宣言すると、静的として宣言されていない限り、progressBar を使用できず、静的だと思う場合はアクティビティで作成できません。
解決策はありますか?
ありがとう、私の下手な英語でごめんなさい