I need to show list of images in list view, for i done image loading process in a listview using CustomAdapter, here my problem is i need to show only one image ie the visible count must be only one. i need to avoid showing 2 images images. Pleaser find the attachment for your reference. (i must use listview for this) and my code is
MainActivity.Java:
public class MainActivity extends Activity {
ListView mList;
String[] imageURL = {
"http://ptsdperspectives.org/wp-content/uploads/2013/07/sleepingbaby.jpg",
"http://images2.fanpop.com/image/photos/14300000/Sweet-Angels-sweety-babies-14394647-1600-1200.jpg",
"http://1.bp.blogspot.com/-QDe-qthaKz0/UAWZ6aakdoI/AAAAAAAAFK4/2zlaIu1r20Q/s1600/baby.jpg",
"http://images4.fanpop.com/image/photos/17400000/Sweet-angel-sweety-babies-17465667-600-399.jpg",
"http://media.npr.org/assets/img/2013/05/02/istock-11437508-baby-hat_custom-83708739a42b84de8f35d7a57ee868fce921d619-s6-c30.jpg",
"http://my.fakingnews.firstpost.com/files/2013/09/Baby.jpg",
"http://i.telegraph.co.uk/multimedia/archive/02165/swaddle-baby_2165340b.jpg" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mList = (ListView) findViewById(R.id.image_list_view);
ArrayList<String> mArrayList = new ArrayList<String>();
for (String s : imageURL) {
mArrayList.add(s);
}
CustomImageAdapter mAdapter = new CustomImageAdapter(MainActivity.this,
mArrayList);
mList.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
// mList.setOnScrollListener(new OnScrollListener() {
//
// @Override
// public void onScrollStateChanged(AbsListView view, int scrollState) {
// // TODO Auto-generated method stub
// Log.e("onScrollStateChanged -scrollState", scrollState + "");
// }
//
// @Override
// public void onScroll(AbsListView view, int firstVisibleItem,
// int visibleItemCount, int totalItemCount) {
// Log.e("onScroll -firstVisibleIteml", firstVisibleItem + "");
// Log.e("onScroll -visibleItemCount", visibleItemCount + "");
// Log.e("onScroll -totalItemCount", totalItemCount + "");
// // TODO Auto-generated method stub
// }
// });
}
@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;
}
}
CustomAdapter.Java
public class CustomImageAdapter extends BaseAdapter {
private Activity activity;
private static LayoutInflater inflater = null;
protected ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options;
ArrayList<String> url = new ArrayList<String>();
@SuppressWarnings("deprecation")
public CustomImageAdapter(Activity a, ArrayList<String> url2) {
activity = a;
url = url2;
inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader.init(ImageLoaderConfiguration.createDefault(activity));
options = new DisplayImageOptions.Builder().resetViewBeforeLoading()
.cacheOnDisc().imageScaleType(ImageScaleType.IN_SAMPLE_INT)
.bitmapConfig(Bitmap.Config.RGB_565)
.displayer(new FadeInBitmapDisplayer(100)).build();
}
public int getCount() {
return url.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView u_name;
public ImageView icon;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder;
if (convertView == null) {
vi = inflater.inflate(R.layout.list_items, null);
holder = new ViewHolder();
holder.icon = (ImageView) vi.findViewById(R.id.images_bg);
vi.setTag(holder);
} else
holder = (ViewHolder) vi.getTag();
holder.icon.setTag(url.get(position));
imageLoader.displayImage(url.get(position), holder.icon);
return vi;
}
}