zoukankan      html  css  js  c++  java
  • android之volley学习

    Volley是android的平台通信库,一个新的网络通信框架。Volley 的特点:适合数据量小,通信频繁的网络操作。

    获取Volley

    git 工具使用:
    git clone https://android.googlesource.com/platform/frameworks/volley

    下载下来然后到eclipse后生成jar文件,放到libs下面
    在已有的project中点击new->new module,然后进去选择页面

    在选择页面可以看到,这个更友好的界面,有Library导入,.jar、.AAR等,因为此时我们下载的是Volley.jar,所以选择 .jar
    然后选择文件所在文件夹,此时作者放在桌面
    接下来因为没有将库引用,所以要配置bulid.gradle,此时选择File->project structure
    左侧选择app,然后右侧点击dependency,如图
    然后点击右边加号第三个Module dependency,添加刚才导入的Volley.jar

    一:volley请求加载图片

    本地搭建一个服务器,里面放一张图片,

    布局里面放一个普通的ImageView,找到图片

    iv = (ImageView) findViewById(R.id.volley_image);

    该方法在onCreate里面执行

     private void getVolleyImage() {
            RequestQueue requestqueue = Volley.newRequestQueue(this);
            String iamgeurl = "http://10.0.2.2/images/pic_1.jpg";
            final LruCache<String, Bitmap> lurcache = new LruCache<String, Bitmap>(20);
            ImageLoader.ImageCache imagecahe = new ImageLoader.ImageCache() {
                @Override
                public Bitmap getBitmap(String key) {
                    return lurcache.get(key);
                }
    
                @Override
                public void putBitmap(String key, Bitmap value) {
                    lurcache.put(key, value);
                }
            };
            ImageLoader imageloader = new ImageLoader(requestqueue, imagecahe);
            ImageLoader.ImageListener listener = imageloader.getImageListener(iv, R.drawable.p1, R.drawable.p1);
            imageloader.get(iamgeurl, listener);
        }

    二:使用NetworkImageView

    <com.android.volley.toolbox.NetworkImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_marginLeft="10dp"
        android:id="@+id/volley_image2" />

    然后在onCreate里面执行

     private void getNetworkImageView() {
            String iamgeurl = "http://10.0.2.2/images/pic_1.jpg";
            RequestQueue requestqueue = Volley.newRequestQueue(this);
            final LruCache<String, Bitmap> lurcache = new LruCache<String, Bitmap>(20);
    
            ImageLoader.ImageCache imagecahe = new ImageLoader.ImageCache() {
                @Override
                public Bitmap getBitmap(String key) {
                    return lurcache.get(key);
                }
    
                @Override
                public void putBitmap(String key, Bitmap value) {
                    lurcache.put(key, value);
                }
            };
    
            ImageLoader imageloader = new ImageLoader(requestqueue, imagecahe);
            iv2.setTag("url");
            iv2.setImageUrl(iamgeurl, imageloader);
        }
  • 相关阅读:
    windows 全局安装 composer【转】
    CentOS7使用firewalld打开关闭防火墙与端口
    转 Page Object模式
    转 用SQL语句,删除掉重复项只保留一条
    转 什么是Mbps、Kbps、bps、kb、mb及其换算和区别
    转 使用Python的logging.config.fileConfig配置日志
    转 zookeeper,dubbo和Nginx的区别
    转 lsof命令详解
    Fatal Error -26000: Not enough memory (12320 bytes) for “new buffer in LrwSrvNetTaskIt 问题解决及lr脚本心得
    Action.c(28): Error -27796: Failed to connect to server "xxxx": [10060] Connection timed out
  • 原文地址:https://www.cnblogs.com/DonAndy/p/6212720.html
Copyright © 2011-2022 走看看