Привет Я пытаюсь показать некоторые изображения в ViewPager тех нужно быть скачать, прежде чем шоу, а также я должен показать прогресс бар во время загрузки. Может кто-нибудь, пожалуйста, помогите мне разобраться. Кроме того, я пытаюсь использовать весь вид viewpager. это хорошая практика. Ниже мой кодAndroid скачать список изображений и показа изображений в ViewPager с прогрессом в диалоговом
Вот мой список адаптер
public class adapter extends ArrayAdapter<FriendList> {
private Context context;
private List<FriendList> frndList;
ProgressDialog mProgressDialog;
LinearLayout inHorizontalScrollView;
View view;
public adapter(Context context, int resource, List<FriendList> objects) {
super(context, resource, objects);
this.context = context;
this.frndList = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.item_file, parent, false);
FriendList friensList = frndList.get(position);
Log.v("=====================","======111111========"+friensList);
Friend temp = friensList.getFriend();
Log.v("=====================","======temp========"+temp);
//inHorizontalScrollView = (LinearLayout)view.findViewById(R.id.inhorizontalscrollview);
List<String> imageArra = temp.getImageData();
Log.v("=====================","======imageArra========"+imageArra.size());
ViewPager myPager = (ViewPager) view.findViewById(R.id.myfivepanelpager);
ViewPagerAdapter adapter = new ViewPagerAdapter(context);
myPager.setAdapter(adapter);
adapter.change(imageArra);
return view;
}
}
вот мой ViewPager адаптер
public class ViewPagerAdapter extends PagerAdapter {
/* Adapter activity;
int imageArray[];
private Context context;
public ViewPagerAdapter(Context context, int[] imgArra) {
imageArray = imgArra;
//activity = act;
context = context;
}*/
ProgressDialog mProgressDialog;
private List<String> mPaths;
private Context mContext;
public ViewPagerAdapter(Context cx) {
mContext = cx.getApplicationContext();
}
public void change(List<String> paths) {
mPaths = paths;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mPaths.size();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv = new ImageView(mContext);
String path = mPaths.get(position);
Log.v("=====================","======path====11===="+path);
new calc_stanica().execute(path, container, iv);
try {
Bitmap bitmap = Glide.with(mContext).load(path).asBitmap().into(-1, -1).get();
//Bitmap bm = BitmapFactory.decodeFile(mPaths.get(position));
iv.setImageBitmap(bitmap);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
((ViewPager) container).addView(iv, 0);
return iv;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object obj) {
// TODO Auto-generated method stub
return view == (View) obj;
}
private class calc_stanica extends AsyncTask<Object, Void, Bitmap> {
ViewGroup container;
ImageView iv;
/*@Override
protected void onPreExecute() {
super.onPreExecute();
// Create a progressdialog
mProgressDialog = new ProgressDialog(mContext);
// Set progressdialog title
mProgressDialog.setTitle("Download Image Tutorial");
// Set progressdialog message
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
// Show progressdialog
mProgressDialog.show();
}*/
@Override
protected Bitmap doInBackground(Object... params) {
//ArrayList<Bitmap> result = new ArrayList<Bitmap>();
String pass = (String) params[0];
container = (ViewGroup) params[1];
iv = (ImageView) params[2];
//View str = (View) params[1];
//Context ctx = (Context) params[2];
//Log.v("================", "===passed========" + passed);
Bitmap bitmap = null;
try {
// Download Image from URL
//InputStream input = new java.net.URL(imageURL).openStream();
// Decode Bitmap
bitmap = Glide.with(mContext).load(pass).asBitmap().into(-1, -1).get();
} catch (Exception e) {
e.printStackTrace();
}
//int intArray[] = new int[bitmap.getWidth()*bitmap.getHeight()];
//result.add(bitmap);
//Log.v("================", "===result========" + result);
//Some calculations...
return bitmap; //return result
}
//*protected Bitmap doInBackground(String... URL) {
/* String imageURL = URL[0];
Bitmap bitmap = null;
ArrayList<Bitmap> list;
try {
// Download Image from URL
//InputStream input = new java.net.URL(imageURL).openStream();
// Decode Bitmap
bitmap = Glide.with(getApplicationContext()).load(imageURL).asBitmap().into(-1, -1).get();
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;*/
@Override
protected void onPostExecute(Bitmap result) {
if(result != null) {
iv.setImageBitmap(result);
((ViewPager)container).addView(iv, 0);
}
//mProgressDialog.dismiss();
}
}
}
он дает мне ошибку в подсчете Досталось и не позволяют добавлять прогресс бар в адаптере.
Приложите отчет logcat (stacktrace), чтобы он смог отладить проблему. –
Привет, в логарифме ничего нет, дело в том, что оно работает, но не показывает никаких изображений :( – user2423768