Ich habe Probleme beim Anzeigen von Bildern für Image Slider in Android.Ich hole die Bilder aus JSON aber immer nur das letzte Bild des Index anzeigen, Angenommen, wenn ich die verschieben kann Sehen Sie Pager immer wieder dasselbe Bild an, das für das Bildgleiten in Android anzeigt. Ich weiß nicht, was das Problem ist, versuchte ich fast wie ich kann, aber ich konnte diesen Fehler wirklich nicht finden. Wer hilft mein Problem zu lösen.In View Pager nur die letzten Bilder von Json wiederholt in Android
Code:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_zoomproduct_);
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.b2)
.showImageForEmptyUri(R.drawable.b2)
.showImageOnFail(R.drawable.b2)
.build();
/******************** this is for single page product ***********************/
Intent singleproductpage = getIntent();
singlepro = singleproductpage.getStringExtra("currentinedx");
Intent multipleimages = getIntent();
multipleimg = multipleimages.getStringExtra("multipleimages");
Intent productpath = getIntent();
productpaths = productpath.getStringExtra("productpath");
Intent seller = getIntent();
sellers = seller.getStringExtra("sellerid");
// pDialog = new ProgressDialog(Zoomproduct_Activity.this);
// pDialog.setMessage("Please wait...");
// pDialog.setCancelable(false);
singleproduct();
viewPager = (ViewPager) findViewById(R.id.pager);
// Pass results to ViewPagerAdapter Class
adapter = new ZoomAdapter(Zoomproduct_Activity.this, adlist);
// Binds the Adapter to the ViewPager
viewPager.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
multipleimage = new JSONArray(multiimg);
if (multipleimage.length() > 0) {
for (int i = 0; i < multipleimage.length(); i++) {
JSONObject singleimg = multipleimage.getJSONObject(i);
/*oneimg = singleimg.getString("original_res");
String singleImages= productpath+sid+ '/'+ oneimg;*/
// zoom.setImageUrl(productpaths+sellers+ '/'+singleimg.getString("original_res"));
// imgs.add(zoom);
String imagesone = productpaths + sellers + '/' + singleimg.getString("original_res");
map.put(TAG_IMAGE, imagesone);
adlist.add(map);
String imgs1 = String.valueOf(adlist);
//String zoom1=String.valueOf(imgs1);
// Log.d(zoom1,"zoom");
Log.d(imgs1, "ararlist");
}
}
Adapter:
public class ZoomAdapter extends PagerAdapter {
LayoutInflater inflator;
ImageView imgDisplay;
Context context;
// ArrayList<ZoomimageModel> slideShowImages;
// ArrayList<String> slideShowImages;
private ArrayList < HashMap < String, String >> slideShowImages;
HashMap < String, String > plotimages;
DisplayImageOptions options;
public ZoomAdapter(Context context, ArrayList < HashMap < String, String >> slideShowImages) {
this.context = context;
this.slideShowImages = slideShowImages;
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.slip1)
.showImageForEmptyUri(R.drawable.b2)
.showImageOnFail(R.drawable.ic_drawer)
.build();
}
@Override
public int getCount() {
return slideShowImages.size();
}
public int getItemPosition(Object object) {
return POSITION_NONE;
}
// @Override
/* public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}*/
// @Override
public Object instantiateItem(ViewGroup container, final int position) {
inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View viewLayout = inflator.inflate(R.layout.productzoomrow, container,
false);
imgDisplay = (ImageView) viewLayout.findViewById(R.id.imgDisplay);
// ZoomimageModel zooms=slideShowImages.get(position);
plotimages = slideShowImages.get(position);
// System.out.println("ImageUrl---------------------"+slideShowImages.get(position).getImageUrl());
System.out.println("ImageUrl---------------------" + plotimages.get(Zoomproduct_Activity.TAG_IMAGE));
// YelloPage.imageLoader.displayImage(zooms.getImageUrl(), imgDisplay, options);
YelloPage.imageLoader.displayImage(plotimages.get(Zoomproduct_Activity.TAG_IMAGE), imgDisplay, options);
container.addView(viewLayout);
return viewLayout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// ((ViewPager) container).removeView((ImageView) object);
(container).removeView((RelativeLayout) object);
// container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
/* @Override
public void destroyItem(ViewGroup container, int position, Object object)
{
((ViewPager) container).removeView((ImageView) object);
}*/
}
Logcat Bilder zeigen:
[05 - 07 02: 06: 15.445 26970: 26970 D/[{
original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-171452579105.jararlist
[05 - 07 02: 06: 15.445 26970: 26970 D/[{
original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-791452579106.jararlist
[05 - 07 02: 06: 15.445 26970: 26970 D/[{
original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-971452579106.jararlist
[05 - 07 02: 06: 15.445 26970: 26970 D/[{
original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-341452579106.jararlist
[05 - 07 02: 06: 15.445 26970: 26970 D/[{
original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-891452579106.jararlist
[05 - 07 02: 06: 15.445 26970: 26970 D/[{
original_res = http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-441452579106.jararlist
05 - 07 02: 06: 15.445 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 171452579105. jpeg: images
05 - 07 02: 06: 15.445 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 791452579106. jpeg: images
05 - 07 02: 06: 15.446 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 971452579106. jpeg: images
05 - 07 02: 06: 15.446 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 341452579106. jpeg: images
05 - 07 02: 06: 15.446 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 891452579106. jpeg: images
05 - 07 02: 06: 15.446 26970 - 26970/com.journaldev.navigationdrawer D/lenovo - a6000 - 441452579106. jpeg: images
05 - 07 02: 06: 15.448 754 - 7094/system_process V/WindowManager: Adding window Window {
39992643 u0 com.journaldev.navigationdrawer/com.journaldev.navigationdrawer.Activity.Zoomproduct_Activity
}
at 4 of 9(after Window {
2 fb8c08e u0 com.journaldev.navigationdrawer/com.journaldev.navigationdrawer.Activity.singleshooppingcart
})
05 - 07 02: 06: 15.464 26970 - 26970/com.journaldev.navigationdrawer I/System.out: ImageUrl-- -- -- -- -- -- -- -- -- -- - http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-441452579106.jpeg
05 - 07 02: 06: 15.477 26970 - 26970/com.journaldev.navigationdrawer I/System.out: ImageUrl-- -- -- -- -- -- -- -- -- -- - http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-441452579106.jpeg
05 - 07 02: 06: 15.535 26970 - 27049/com.journaldev.navigationdrawer W/EGL_emulation: eglSurfaceAttrib not implemented
05 - 07 02: 06: 15.536 26970 - 27049/com.journaldev.navigationdrawer W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xe2266e00,
error = EGL_SUCCESS
05 - 07 02: 06: 15.792 754 - 780/system_process I/ActivityManager: Displayed com.journaldev.navigationdrawer/.Activity.Zoomproduct_Activity: +358 ms
05 - 07 02: 06: 16.062 715 - 715/? W/SurfaceFlinger : couldn 't log to binary event log: overflow.
05 - 07 02: 06: 20.092 26970 - 26970/com.journaldev.navigationdrawer I/System.out: ImageUrl-- -- -- -- -- -- -- -- -- -- - http: //192.168.0.33/cartwebsite3/cdn-images/prd/1/lenovo-a6000-441452579106.jpeg
05 - 07 02: 06: 20.256 754 - 1067/system_process D/WifiService: acquireWifiLockLocked: WifiLock {
NlpWifiLock type = 2 binder = android.os.BinderProxy @997c048
}
Glad zu schätzen mein Problem
Können Sie erklären, Warum verwenden Sie 'ArrayList' von' HashMap' stattdessen verwenden Sie einfach 'ArrayList' von' String' und erhalten das 'image' nach Position. –
Problem in Ihrem Code ist, dass Sie die gleiche 'IMAGE_TAG' für jedes Bild verwenden, also wird das letzte Bild, das zur' HashMap' hinzugefügt wird, angezeigt. –
Bevor ich HashMap nicht benutze, habe ich das Modell benutzt, um das Bild zu erstellen das ist auch ich habe die gleichen Bilder – Nivethitha