不多说直接上干货
设置全局变量,在前文设置过就不用重复设置了。
1 public class MyApp extends Application{ 2 //1.创建请求队列,可以设置为全局变量 3 private static RequestQueue mQueue; 4 @Override 5 public void onCreate() { 6 super.onCreate(); 7 //初始化请求队列 8 mQueue = Volley.newRequestQueue(getApplicationContext()); 9 } 10 11 public static RequestQueue getHttpQueue(){ 12 return mQueue; 13 } 14 15 } 用ImageRequest获取 1 public class ImageRequestActivity extends AppCompatActivity { 2 3 private ImageView iv; 4 private String url = "https://img-my.csdn.net/uploads/201407/26/1406383172_4577.jpg"; 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_image_request); 10 iv = (ImageView) findViewById(R.id.iv); 11 volleyImage(url); 12 } 13 /** 14 * String url, 图片的地址 15 * Listener<Bitmap> listener, 获取图片成功时会回调的接口 16 * int maxWidth, 图片显示的最大宽度 17 * int maxHeight, 图片显示的最大的高度 18 * Config decodeConfig, 图片的加载质量 19 * 可选四种: 20 * ARGB_8888 8+8+8+8 = 32 位 32/8 = 4字节 21 * =1个像素点上的字节数 22 * ARGB_4444 16位 2字节 23 * RGB_565 16位 2字节 图片压缩较小,而且比较清晰 24 * Alpha_8 8位 1字节 25 * 26 * 480*800=384000*4/1024/1024 = 1.4648m 27 * ErrorListener errorListener :获取图片失败时会回调的接口 28 * */ 29 30 public void volleyImage(String url){ 31 32 ImageRequest request = new ImageRequest(url, new Response.Listener<Bitmap>() { 33 @Override 34 public void onResponse(Bitmap bitmap) { 35 iv.setImageBitmap(bitmap); 36 } 37 }, 250, 250, Bitmap.Config.RGB_565, new Response.ErrorListener() { 38 @Override 39 public void onErrorResponse(VolleyError volleyError) { 40 iv.setImageResource(R.drawable.h2); 41 } 42 }); 43 44 MyApp.getHttpQueue().add(request); 45 } 46 } 布局 1 <ImageView 2 android:id="@+id/iv" 3 android:layout_centerInParent="true" 4 android:layout_width="250dp" 5 android:layout_height="250dp" 6 android:src="@mipmap/ic_launcher" 7 android:scaleType="centerCrop"/> 用NetImage获取 1 2 public class NetImageActivity extends AppCompatActivity { 3 4 private NetworkImageView netIv; 5 private String url = "https://img-my.csdn.net/uploads/201407/26/1406383130_7393.jpg"; 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_net_image); 10 netIv = (NetworkImageView) findViewById(R.id.netIv); 11 12 RequestQueue queue = MyApp.getHttpQueue(); 13 ImageLoader loader = new ImageLoader(queue,new BitmapCache()); 14 netIv.setDefaultImageResId(R.mipmap.ic_launcher); //设置默认加载的图片 15 netIv.setErrorImageResId(R.drawable.h2); //设置网络加载失败时显示的图片 16 //设置NetworkImageView的图片加载路径 17 netIv.setImageUrl(url,loader); 18 } 19 } 布局 1 <com.android.volley.toolbox.NetworkImageView 2 android:id="@+id/netIv" 3 android:layout_height="250dp" 4 android:layout_width="250dp" 5 android:layout_centerInParent="true" 6 android:scaleType="centerCrop"> 7 8 </com.android.volley.toolbox.NetworkImageView> 用ImageView 获取 1 public class ImageViewActivity extends AppCompatActivity { 2 3 private ImageView iv; 4 private String url = "https://img-my.csdn.net/uploads/201407/26/1406382941_4559.jpg"; 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_image_request); 9 iv = (ImageView) findViewById(R.id.iv); 10 11 //获得图片加载器对象 12 ImageLoader loader = new ImageLoader(MyApp.getHttpQueue(),new BitmapCache()); 13 14 ImageLoader.ImageListener listener= loader.getImageListener(iv,R.mipmap.ic_launcher,R.drawable.h2); 15 16 loader.get(url,listener); 17 18 19 } 20 } 传入的工具类BitmapCache 1 public class BitmapCache implements ImageLoader.ImageCache{ 2 //定义缓存对象 3 private LruCache<String,Bitmap>cache; 4 private int maxSize = 8*1024*1024; 5 6 public BitmapCache() { 7 8 cache = new LruCache<String,Bitmap>(maxSize){ 9 @Override 10 protected int sizeOf(String key, Bitmap value) { 11 //计算出要存储的bitmap对象的字节数 12 return value.getRowBytes()*value.getHeight(); 13 } 14 }; 15 } 16 17 @Override 18 public Bitmap getBitmap(String s) { 19 return cache.get(s); 20 } 21 22 @Override 23 public void putBitmap(String url, Bitmap bitmap) { 24 cache.put(url,bitmap); 25 } 26 } 布局 1 <ImageView 2 android:id="@+id/iv" 3 android:layout_centerInParent="true" 4 android:layout_width="250dp" 5 android:layout_height="250dp" 6 android:src="@mipmap/ic_launcher" 7 android:scaleType="centerCrop"/> 权限 1 2 <uses-permission android:name="android.permission.INTERNET" /> 3 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />