android-asynctask - 使用asyncTask将图像加载到自定义映像适配器中

  显示原文与译文双语对照的内容
0 0

我正在使用asynctask加载来自网络网址的图像。

同时,我正在尝试使用定制适配器将图像加载到库中。 但是画廊里没有图像。

Activity,


 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.property_image_adapter);
 Intent intent = getIntent();
 intent.getStringExtra("PropertyID");
 PropertyImagesList ImageList = new PropertyImagesList();
 img = ImageList
. fetchPropertyImages(intent.getStringExtra("PropertyID"));
//imgfromWebUrl=(ImageView)findViewById(R.id.imgfromWebUrl);
 propertyImageGallery = (Gallery) findViewById(R.id.gallery1);
 new LoadViewTask().execute();
}

private class LoadViewTask extends AsyncTask<Void, Integer, Bitmap> {
//Before running code in separate thread
 @Override
 protected Bitmap doInBackground(Void... params) {
 View view;
 Bitmap x = null;
 for (int i = 0; i <= img.size() - 1; i++) {
 try {
 HttpURLConnection connection = (HttpURLConnection) new URL(
"url here"
 + img.get(i).Source.trim())
. openConnection();
 connection.connect();
 connection.setReadTimeout(120000);
 InputStream input = connection.getInputStream();
 x = BitmapFactory.decodeStream(input);


 } catch (IOException e) {
//TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 return x;
 }

 @Override
 protected void onPostExecute(Bitmap result) {
 super.onPostExecute(result);
 Log.d("","On Post execute:" + result);
//imgfromWebUrl.setImageBitmap(result);
 propertyImageGallery.setAdapter(new PropertyImageAdapter(Context, result));
 }
}
}

我的自定义适配器类,


public class PropertyImageAdapter extends BaseAdapter {
private Context ctx;
Bitmap pics;

public PropertyImageAdapter(Context c,Bitmap pics) {
 Log.d("","custom Adapter");
 ctx = c; 
 this.pics=pics;
}

@Override
public int getCount() {

 return 0;
}

@Override
public Object getItem(int arg0) {

 return arg0;
}

@Override
public long getItemId(int arg0) {

 return arg0;
}

@Override
public View getView(int arg0, View paramView, ViewGroup arg2) {

 View localView;
 Log.d("","getView:");
 if (paramView == null) {
 localView = View.inflate(ctx,
 R.layout.property_image_adapter, null);
 } else {
 localView = paramView;
 } 
 ImageView imgfromWebUrl=(ImageView)localView.findViewById(R.id.imgfromWebUrl); 
 Log.d("","pics[0]:"+pics);
 imgfromWebUrl.setImageBitmap(pics);
 imgfromWebUrl.setScaleType(ImageView.ScaleType.FIT_XY);
 imgfromWebUrl.setLayoutParams(new Gallery.LayoutParams(150, 150));
 return imgfromWebUrl;
}

 }

布局


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical"> 

<Gallery
 android:id="@+id/gallery1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:spacing="10dip"> 
</Gallery>

<ImageView
 android:id="@+id/imgfromWebUrl"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"> 
</ImageView>

</LinearLayout>

我不在哪里实现了错误,但图库显示为空。

请更正我的代码任何帮助 !

时间: 原作者:

0 0

在你的适配器中 getCount() 被设置为0,这意味着你的适配器将显示零"

我没有很好地阅读代码,但这是一个可能会造成

...