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;
}
ول خب این روش چندان کاربردی بنظر نمیاد.
لطفا دوستان کمک کنن
اصل سوال بنده اینه : چطور میتونم تصاویر رو از سرور دانلود کرده و در لیست ویو به نمایش بذارم؟
بهرتین راه برای اینکار استفاده از کتابخانه های 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;
}
ول خب این روش چندان کاربردی بنظر نمیاد.
لطفا دوستان کمک کنن