PDA

View Full Version : نحوه دانلود و نمایش تصاویر از سرور بر روی لیست ویو



hamedg1366
پنج شنبه 19 شهریور 1394, 21:42 عصر
با عرض سلام و خسته نباشید خدمت همه دوستان عزیز

اصل سوال بنده اینه : چطور میتونم تصاویر رو از سرور دانلود کرده و در لیست ویو به نمایش بذارم؟


بهرتین راه برای اینکار استفاده از کتابخانه های Picasso و Android Universal Image Loader هستش ، من لینک های زیر رو پیدا کردم :


picasso (http://square.github.io/picasso/)

Android-Universal-Image-Loader


(https://github.com/nostra13/Android-Universal-Image-Loader)فقط نمیدونم چطور باید ازشون استفاده کنم ، لطفا دوستانی که پیاده سازی کزدن به زبان فارسی یه توضیح مختصری بدن .



التبه یه راه حل دیگه هم پیدا کردم ، ایجاد آرایه ای از لینک تصاویر و استفاده از AsyncTask به صورت زیر :



public class MainActivity extends Activity {

private String[] imageURLArray = new String[]{
"http://farm8.staticflickr.com/7315/9046944633_881f24c4fa_s.jpg",
"http://farm4.staticflickr.com/3777/9049174610_bf51be8a07_s.jpg",
"http://farm8.staticflickr.com/7324/9046946887_d96a28376c_s.jpg",
"http://farm3.staticflickr.com/2828/9046946983_923887b17d_s.jpg",
"http://farm4.staticflickr.com/3810/9046947167_3a51fffa0b_s.jpg",
"http://farm4.staticflickr.com/3773/9049175264_b0ea30fa75_s.jpg",
"http://farm4.staticflickr.com/3781/9046945893_f27db35c7e_s.jpg",
"http://farm6.staticflickr.com/5344/9049177018_4621cb63db_s.jpg",
"http://farm8.staticflickr.com/7307/9046947621_67e0394f7b_s.jpg",
"http://farm6.staticflickr.com/5457/9046948185_3be564ac10_s.jpg",
"http://farm4.staticflickr.com/3752/9046946459_a41fbfe614_s.jpg",
"http://farm8.staticflickr.com/7403/9046946715_85f13b91e5_s.jpg",
"http://farm8.staticflickr.com/7315/9046944633_881f24c4fa_s.jpg",
"http://farm4.staticflickr.com/3777/9049174610_bf51be8a07_s.jpg",
"http://farm8.staticflickr.com/7324/9046946887_d96a28376c_s.jpg",
"http://farm3.staticflickr.com/2828/9046946983_923887b17d_s.jpg",
"http://farm4.staticflickr.com/3810/9046947167_3a51fffa0b_s.jpg",
"http://farm4.staticflickr.com/3773/9049175264_b0ea30fa75_s.jpg",
"http://farm4.staticflickr.com/3781/9046945893_f27db35c7e_s.jpg",
"http://farm6.staticflickr.com/5344/9049177018_4621cb63db_s.jpg",
"http://farm8.staticflickr.com/7307/9046947621_67e0394f7b_s.jpg",
"http://farm6.staticflickr.com/5457/9046948185_3be564ac10_s.jpg",
"http://farm4.staticflickr.com/3752/9046946459_a41fbfe614_s.jpg",
"http://farm8.staticflickr.com/7403/9046946715_85f13b91e5_s.jpg"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

ListView listView = (ListView)this.findViewById(R.id.listView);
ImageAdapter imageAdapter = new ImageAdapter(this, R.layout.imageitem, imageURLArray);
listView.setAdapter(imageAdapter);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}




public class ImageAdapter extends ArrayAdapter<String> {
private String[] imageURLArray;
private LayoutInflater inflater;

public ImageAdapter(Context context, int textViewResourceId,
String[] imageArray) {
super(context, textViewResourceId, imageArray);
// TODO Auto-generated constructor stub

inflater = ((Activity)context).getLayoutInflater();
imageURLArray = imageArray;
}

private static class ViewHolder {
ImageView imageView;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder = null;
if(convertView == null) {
convertView = inflater.inflate(R.layout.imageitem, null);

viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView)convertView.findViewById(R.id.testImage );
convertView.setTag(viewHolder);
}

viewHolder = (ViewHolder)convertView.getTag();

//load image directly
Bitmap imageBitmap = null;
try {
URL imageURL = new URL(imageURLArray[position]);
imageBitmap = BitmapFactory.decodeStream(imageURL.openStream());
viewHolder.imageView.setImageBitmap(imageBitmap);
} catch (IOException e) {
// TODO: handle exception
Log.e("error", "Downloading Image Failed");
viewHolder.imageView.setImageResource(R.drawable.p ostthumb_loading);
}

return convertView;
}
}





public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder = null;
if(convertView == null) {
convertView = inflater.inflate(R.layout.imageitem, null);

viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView)convertView.findViewById(R.id.testImage );
convertView.setTag(viewHolder);
}

viewHolder = (ViewHolder)convertView.getTag();
viewHolder.imageURL = imageURLArray[position];
new DownloadAsyncTask().execute(viewHolder);
return convertView;
}




ول خب این روش چندان کاربردی بنظر نمیاد.

لطفا دوستان کمک کنن

hamedg1366
جمعه 20 شهریور 1394, 10:07 صبح
دوستان قدیمی لطفا کمک کنن