Glide大图加载 长图加载

Glide概述

有些朋友以为Glide 4相对于Glide 3改动很是大,其实否则。之因此你们会有这种错觉,是由于你将Glide 3的用法直接搬到Glide 4中去使用,结果IDE全面报错,而后你们可能就以为Glide 4的用法彻底变掉了。
其实Glide 4相对于Glide 3的变更并不大,只是你尚未了解它的变更规则而已。一旦你掌握了Glide 4的变更规则以后,你会发现大多数Glide 3的用法放到Glide 4上都仍是通用的。
我对Glide 4进行了一个大概的研究以后,发现Glide 4并不能算是有什么突破性的升级,而更可能是一些API工整方面的优化。相比于Glide 3的API,Glide 4进行了更加科学合理地调整,使得易读性、易写性、可扩展性等方面都有了不错的提高。但若是你已经对Glide 3很是熟悉的话,并非就必需要切换到Glide 4上来,由于Glide 4上能实现的功能Glide 3也都能实现,并且Glide 4在性能方面也并无什么提高。可是对于新接触Glide的朋友而言,那就不必再去学习Glide 3了,直接上手Glide 4就是最佳的选择了。java

直接上代码喽

【build.gradle】先来两个依赖:
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0' 
implementation 'com.github.bumptech.glide:glide:3.8.0'
【MainActivity】类具体代码以下:
package com.xyxy.demot;
import android.annotation.SuppressLint;
import android.graphics.PointF;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import com.davemorrissey.labs.subscaleview.ImageSource;
import com.davemorrissey.labs.subscaleview.ImageViewState;
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView;
import java.io.File;
public class MainActivity extends AppCompatActivity {
    private SubsamplingScaleImageView mageView;
    @SuppressLint("CheckResult")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String sUrl = "https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1532588239&di=78b4c6bde1cf9d1df89562241b547e72&src=http://p2.qhimg.com/t011fc13354f12d1a46.jpg";
        mageView = (SubsamplingScaleImageView) findViewById(R.id.imageview);
        mageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CUSTOM);
        mageView.setMinScale(1.0F);
        //下载图片保存到本地
        Glide.with(this).load(sUrl).downloadOnly(new SimpleTarget<File>() {
            @Override
            public void onResourceReady(File resource, GlideAnimation<? super File>     glideAnimation) {
            // 将保存的图片地址给SubsamplingScaleImageView,这里注意设置ImageViewState设置初始显示比例
            mageView.setImage(ImageSource.uri(Uri.fromFile(resource)), new ImageViewState(2.0F, new PointF(0, 0), 0));
        }
    });
}}
【xml】类具体代码以下:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#E61b1919">
   <com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
      android:id="@+id/imageview"
      android:layout_width="match_parent"
      android:layout_height="match_parent" /></LinearLayout>
【AndroidManifest.xml】可别忘啦INTERNET:
<uses-permission android:name="android.permission.INTERNET"/>

显示超长图android

Glide.with(context).load(url).downloadOnly(new SimpleTarget<File>() {
@Override
public void onResourceReady(File resource, Transition<? super File> transition) {
Uri uri = Uri.fromFile(resource);
imageView.setImageURI(uri);
}
});git


搞定《完》