package com.fabian.testvolly;

import android.graphics.Bitmap;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.LruCache;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.LayoutAnimationController;
import android.view.animation.ScaleAnimation;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.Volley;

import java.util.ArrayList;


public class MainActivity extends ActionBarActivity {

ArrayList list=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
for(int i=0;i<<span style="color:#6897bb;">20;i++)
{
list.add("http://s0.hao123img.com/res/ecom/wph-715.jpg");
}
AnimationSet aset=new AnimationSet(false);
ScaleAnimation sa=new ScaleAnimation(0f,1f,0f,1f,0.5f,0.5f);
sa.setDuration(2000);
AlphaAnimation aa=new AlphaAnimation(0f,1f);
aa.setDuration(2000);
aset.addAnimation(sa);
aset.addAnimation(aa);
LayoutAnimationController controller = new LayoutAnimationController(aset, 0.5f);
controller.setOrder(LayoutAnimationController.ORDER_NORMAL);
GridView gv= (GridView) findViewById(R.id.gridView);
gv.setLayoutAnimation(controller);
RequestQueue mQueue = Volley.newRequestQueue(getApplicationContext());
final ImageLoader mImageLoader=new ImageLoader(mQueue,new BitmapCache());
gv.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=LayoutInflater.from(MainActivity.this);
convertView=inflater.inflate(R.layout.item_layout,null);
ImageLoader.ImageListener listener = ImageLoader.getImageListener((ImageView) convertView.findViewById(R.id.imageView), android.R.drawable.ic_menu_rotate, android.R.drawable.ic_delete);
mImageLoader.get(list.get(position), listener);
return convertView;
}
});
mQueue.start();
}
class BitmapCache implements ImageLoader.ImageCache {

private LruCache, Bitmap> cache;

public BitmapCache() {
cache = new LruCache, Bitmap>(8 * 1024 * 1024) {
@Override
protected int sizeOf(String key, Bitmap bitmap) {
return bitmap.getRowBytes() * bitmap.getHeight();
}
};
}
@Override
public Bitmap getBitmap(String url) {
return cache.get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
cache.put(url, bitmap);
}
}
}安卓使用Volly框架加载图片,GridView使用LayoutAnimation