安卓加载长图

引用:

https://github.com/davemorrissey/subsampling-scale-image-view

implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0'

使用:

1、布局

<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:panEnabled="false"
        app:quickScaleEnabled="true"
        app:zoomEnabled="false" />

2、使用:

        //下载图片保存到本地
        Glide.with(this)
                .load(sUrl).downloadOnly(new SimpleTarget<File>() {
            @Override
            public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation) {
                // 将保存的图片地址给SubsamplingScaleImageView,这里注意设置ImageViewState设置初始显示比例
                imageView.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP);
                imageView.setMinScale(getFitWidthScale(resource));//最小显示比例
                imageView.setMaxScale(getFitWidthScale(resource));//最大显示比例(太大了图片显示会失真,因为一般微博长图的宽度不会太宽)
                imageView.setImage(ImageSource.uri(Uri.fromFile(resource)), new ImageViewState(getFitWidthScale(resource), new PointF(0, 0), 0));
            }
        });

        // 计算缩放比例
        private float getFitWidthScale(File file) {
            WindowManager wm = this.getWindowManager();
            float windowWidth = wm.getDefaultDisplay().getWidth();

            return windowWidth / getImageWidth(file);
        }

        private float getImageWidth(File file) {
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            BitmapFactory.decodeFile(file.getAbsolutePath(), options);
            return options.outWidth;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨Army

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值