• Volley框架载入网络图片


    Android开发中,载入网络server的图片是非经常常使用的。当然我们能够自己写server接口去实现,只是要做到server性能

    优越的话,开发起来比較麻烦点。所以本博客要介绍Volley框架进行网络图片载入的demo!

    Volley框架集成了

    AsyncHttpClient和Universal-Image-Loader的长处。开发起来很的方便了。并且性能也不错!



    我们能够去下载Volley.jar,这个是我在网上找的:点击打开链接

    能够去下载这个我在网上找的哦!


    注意:这些网络请求的。首先都要开启权限,我们打开AndroidManifest.xml

    然后定义一个全局变量Context context;

    增加代码:

           <!-- 配置网络连接须要的属性 -->
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>


    方法一:通过ImageRequest,进行载入

     public void imageRequest(){
        	context = this;
        	imageView = (ImageView)findViewById(R.id.imageView1);
        	//创建一个RequestQueue对象
        	RequestQueue requestQueue = Volley.newRequestQueue(context);
         	
        	//创建ImageRequest对象
        	ImageRequest imageRequest = new ImageRequest(
        			"http://c.csdnimg.cn/public/favicon.ico",//url
        			new Response.Listener<Bitmap>() {//监听器Listener
        				@Override
        				public void onResponse(Bitmap response) {
        					imageView.setImageBitmap(response);
        				}
        				//參数3、4表示图片宽高,Bitmap.Config.ARGB_8888表示图片每一个像素占领4个字节大小
        			}, 0, 0, Config.ARGB_8888, new Response.ErrorListener() {//图片载入请求失败的回调Listener
        				@Override
        				public void onErrorResponse(VolleyError error) {
        					imageView.setImageResource(R.drawable.ic_normal_pic);
        				}
        			});
        	//将ImageRequest载入到Queue
        	requestQueue.add(imageRequest);
        }


    方法二:通过ImageLoader。进行载入

    介绍一下imageLoader,imageLoader不是继承ImageRequest。不是内部实现还是通过ImageRequest的,

    ImageLoader来实现的优点是能够过滤反复的url,这样就提高了性能

     public void imageLoad(){
        	context = this;
        	imageView = (ImageView)findViewById(R.id.imageView1);
        	//创建一个RequestQueue对象
        	RequestQueue requestQueue = Volley.newRequestQueue(context);
        	//创建一个ImageLoader
        	ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageCache() {
        		@Override
        		public void putBitmap(String url, Bitmap bitmap) {
        		}
    
        		@Override
        		public Bitmap getBitmap(String url) {
        			return null;
        		}
        	});
        	
        	//ImageListener
        	ImageListener listener = ImageLoader.getImageListener(imageView,
        			R.drawable.ic_normal_pic, R.drawable.ic_normal_pic);
        	
        	//url、listener、maxWidth、maxHeight
        	imageLoader.get("http://c.csdnimg.cn/public/favicon.ico", listener, 200, 200);
        	
        
        }


    方法三:通过NetworkImageLoader

    继承自ImageView的。具备ImageView控件的全部功能,而且在原生的基础之上增加了载入网络图片的功能。也就是

    Volley框架提供的View

      public void networkImageLoad(){
        	context = this;
        	
        	
        	//创建一个RequestQueue对象
        	RequestQueue requestQueue = Volley.newRequestQueue(context);
        	//创建一个ImageLoader
        	ImageLoader imageLoader = new ImageLoader(requestQueue, new ImageCache() {
        		@Override
        		public void putBitmap(String url, Bitmap bitmap) {
        		}
    
        		@Override
        		public Bitmap getBitmap(String url) {
        			return null;
        		}
        	});
        	//NetworkImageView
        	networkImageView = (NetworkImageView) findViewById(R.id.network_image_view);
        	
        	networkImageView.setDefaultImageResId(R.drawable.ic_normal_pic);
        	networkImageView.setErrorImageResId(R.drawable.ic_normal_pic);
        	//设置url和ImageLoader对象
        	networkImageView.setImageUrl("http://c.csdnimg.cn/public/favicon.ico",
        					imageLoader);
        }


    Layout:

     <com.android.volley.toolbox.NetworkImageView   
            android:id="@+id/network_image_view"  
            android:layout_width="100dp"  
            android:layout_height="100dp"  
            android:layout_gravity="center_horizontal"  
            />  



    Demo代码下载:点击打开链接



    
    
  • 相关阅读:
    Ubuntu 查看网关地址方法
    cf451C-Predict Outcome of the Game
    C语言运算符优先级
    文件的概念以及VC里的一些文件操作API简介
    关于空指针NULL、野指针、通用指针
    由字符串常量引发的思考
    数字三角形问题
    cdoj第13th校赛初赛F
    cdoj第13th校赛初赛H
    cdoj第13th校赛初赛L
  • 原文地址:https://www.cnblogs.com/liguangsunls/p/7262600.html
Copyright © 2020-2023  润新知