0
我有一個正從網上加載圖像的imageview。我從網上加載圖像,並使用異步任務將其轉換爲位圖圖像。我想在圖像視圖中顯示靜態圖像,並在圖像加載時在圖像視圖的頂部顯示進度微調器。問題是我有我的xml中的進度微調,我不能在我的異步任務中使用它,我不知道如何使進度微調在圖像視圖中可見。我如何去做這件事?這是我的異步任務類:在圖像視圖中顯示微調框動畫
public class LoadImage extends AsyncTask<Void, Void, Bitmap>{
Context callingContext = null;
ImageView view;
String b = null;
ListView lv;
ProgressDialog p;
public LoadImage(Context c, ImageView view, String b){
this.view = view;
this.b = b;
this.callingContext = c;
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
// p = (ProgressDialog) findViewById(R.id.progressBar1);
p = ProgressDialog.show(callingContext, "Loading Events", "Retrieving data from server, please wait...", true);
}
public Bitmap getBit(String data){
Bitmap bitmap;
BitmapFactory.Options bmOptions;
bmOptions = new BitmapFactory.Options();
bmOptions.inJustDecodeBounds = true;
//from web
try {
bitmap=null;
InputStream is=new URL(data).openStream();
BitmapFactory.decodeStream(is, null, bmOptions);
is.close();
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = 20;
is = new URL(data).openStream();
bitmap = BitmapFactory.decodeStream(is, null, o2);
is.close();
return bitmap;
} catch (Exception ex){
ex.printStackTrace();
return null;
}
}
@Override
protected Bitmap doInBackground(String... arg0) {
// TODO Auto-generated method stub
Bitmap b = null;
URL imageUrl = null;
b = getBit(this.b);
return b;
}
@Override
protected void onPostExecute(Bitmap result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
if(result == null)
view.setImageResource(R.drawable.ic_launcher);
p.dismiss();
}
}
我不會輕易地理解如何將它合併到我的代碼中。我已經添加了我的異步任務類代碼。我如何將這個併入我的異步任務類?而且我沒有在我的程序中使用任何設置的屬性。 – AndroidDev93 2012-07-24 16:22:31
使用'LoaderImageView'而不是'ImageView'。如果你不想使用'AttributeSet',就不要使用它。添加另一個只需要一個Context的構造函數。參見[Compound Controls] [1] [1]:http://developer.android.com/guide/topics/ui/custom-components.html#compound http://developer.android.com/guide/topics/ui /custom-components.html#compound – 2012-07-24 17:05:02