zoukankan      html  css  js  c++  java
  • Android

    Glide:图片加载库

    图片加载框架的对比 glide占明显优势

             ImageLoader:已经停止了维护

             Picasso:无法加载gif(Square公司开发)

             Glide:适用于更多的内容表现形式,快,搞笑缓存策略

             Fresco:适用于需要高性能加载大量图片的场景

     详细教程可以根据:https://mrfu.me/2016/02/27/Glide_Getting_Started/

    实例学习:

    一:加载资源图片

     1:下载glide依赖 

    com.github.bumptech.glide:glide

    2:在Mainifest添加权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.INTERNET" />
    

    3:布局文件

    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/iv_test"
            />
    

    4:activity

    ImageView iv = (ImageView)findViewById(R.id.iv_test);
            Glide.with(this).load(R.mipmap.ic_launcher).into(iv);
    

    运行结果

    二:加载uri图片

    package com.example.myapplication;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.widget.ImageView;
    
    import com.bumptech.glide.Glide;
    
    public class MainActivity extends AppCompatActivity {
    public static final String Resource = "android.resource://";
    public static final String Slash = "/";
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            getImage();
        }
    
        public void getImage() {
            int resId = R.mipmap.ic_launcher;
            Uri uri = Uri.parse(Resource + getPackageName() + Slash + resId);
            ImageView iv = (ImageView)findViewById(R.id.iv_test);
            Glide.with(this).load(uri).into(iv);
        }
    }
    

    三:加载网络图片

    关键代码:

            String url = "http://dmimg.5054399.com/allimg/pkm/pk/22.jpg";
            ImageView iv = (ImageView)findViewById(R.id.iv_test);
            Glide.with(this).load(url).into(iv);
    

    具体:

    package com.example.myapplication;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.widget.ImageView;
    
    import com.bumptech.glide.Glide;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            String url = "http://dmimg.5054399.com/allimg/pkm/pk/22.jpg";
            ImageView iv = (ImageView)findViewById(R.id.iv_test);
            Glide.with(this).load(url).into(iv);
        }
    }
    

    运行结果:

     

    Glide两种裁剪方式

    1:fitCenter(默认)

    Glide.with(this).load(url).fitCenter().into(iv1);

    自适应控件, 不剪裁 ,在不超过控件的前提下,等比 缩放 到 最大 ,居中显示

    2:centerCrop

    Glide.with(this).load(url).centerCrop().into(iv2);

    以填满整个控件为目标,等比缩放,超过控件时将被 裁剪 ( 宽高都要填满 ,所以只要图片宽高比与控件宽高比不同时,一定会被剪裁)

    都是通过调用transform方法来对图片进行处理


    Glide可以添加一些预处理,如网上图片地址失效加载本地资源

     Glide.with(MainActivity.this)
                            //图片地址
                            .load("url")
                            //图片显示大小
                            .override(150,150)
                            //剪切方式,这理选择了centerCrop
                            .centerCrop()
                            //加载时预显示的图片,占位
                            .placeholder(R.drawable.ic_launcher_background)
                            //加载失败后显示的图片
                            .error(R.drawable.ic_launcher_background)
                            //跳过内存缓存
                            .skipMemoryCache(true)
                            //磁盘缓存策略
                            .diskCacheStrategy(DiskCacheStrategy.ALL)
                            .into(imageView);
    

      

  • 相关阅读:
    新东西-intel edison
    MFC AfxMessageBox(_T("Please Load Rawdata First !"));
    libgl1-mesa-glx:i386 : 依赖: libglapi-mesa:i386
    开源硬件_瑞芯微开发板
    手机方案商
    嵌入式Linux应用开发__求职要求
    工作要求
    Proc文件系统接口调试
    Sysfs文件系统接口调试
    Ubuntu Linux 解决 bash ./ 没有那个文件或目录 的方法
  • 原文地址:https://www.cnblogs.com/cxj1821/p/12028446.html
Copyright © 2011-2022 走看看