package cn.alphabets.light.ui; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Point; import android.view.Display; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ArrayAdapter; import android.widget.ImageView; import java.io.File; import cn.alphabets.light.R; import cn.alphabets.light.network.VolleyManager; /** * Image * Created by lin on 14/12/28. */ public class ImageAdapter extends ArrayAdapter<ImageAdapter.ImageItem> { private int itemSize; public static class ImageItem { Bitmap image; String imageName; String imageUrl; public ImageItem(Bitmap image) { this.image = image; } public ImageItem(String imageUrl) { this.imageUrl = imageUrl; } public ImageItem(String imageName, String imageUrl) { this.imageName = imageName; this.imageUrl = imageUrl; } public ImageItem(String imageName, String imageUrl, Bitmap image) { this.imageName = imageName; this.imageUrl = imageUrl; this.image = image; } public boolean isUrl() { return image == null; } } public ImageAdapter(Context context, int resource) { super(context, resource); WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); Display display = wm.getDefaultDisplay(); Point size = new Point(); display.getSize(size); itemSize = size.x / 3; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(getContext(), R.layout.activity_image_item, null); } ImageItem item = getItem(position); final ImageView imageView = (ImageView) convertView.findViewById(R.id.image); if (item.isUrl()) { VolleyManager.loadImage(item.imageUrl, imageView); } else { imageView.setImageBitmap(item.image); } // WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE); // Display display = wm.getDefaultDisplay(); // Point size = new Point(); // display.getSize(size); // int width = size.x / 3; // int height = width; // convertView.setLayoutParams(new ListView.LayoutParams(itemSize, itemSize)); return convertView; } }