Android 加载长图

本文介绍了一种在Android应用中高效加载长图的方法,通过使用SubsamplingScaleImageView库,可以轻松处理超过屏幕尺寸的图片,并提供了详细的实现步骤及示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后台返回的图片是长图,长度超过手机长度,我不行剪裁,于是在网上找了一些资料,在这里我吧这些分享出来,希望能帮助需要帮助的人。直接说明了:

1: 在build.gradle的dependencies里写上

implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0'这个依赖

2:在xml里布局里写布局文件

<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/iv_xiangqing1" android:layout_width="match_parent" android:layout_height="wrap_content"> </com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView>

3:我在下面的代码是加载单张图片

在xml文件里直接

<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
    android:id="@+id/iv_xiangqing"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop"
   />

在赋值区

RequestOptions myOptions = new RequestOptions();
Glide
        .with(mContext)
        .asFile()
        .load(data.data.detail.picture)
        .apply(myOptions)
        .into(new SimpleTarget<File>() {
            @Override
            public void onResourceReady(File resource, Transition<? super File> transition) {
                ivXiangqing.setImage(ImageSource.uri(Uri.fromFile(resource)));
            }
        });

load是加载图片的链接

4:我在这里是用 Glide加载版本号是4.3.1的,Glide在4.0版本做了一些更新,还是看代码吧,我在下面的代码是加载多张图片在

Adapter做的赋值处理
RequestOptions myOptions = new RequestOptions();
Glide
        .with(mContext)
        .asFile()
        .load(banabeanlist.get(position).picture)
        .apply(myOptions)
        .into(new SimpleTarget<File>() {
            @Override
            public void onResourceReady(File resource, Transition<? super File> transition) {
                (holder).ivxiangqing.setImage(ImageSource.uri(Uri.fromFile(resource)));
                (holder).ivxiangqing.setZoomEnabled(false);
                if ((holder).ivxiangqing.isReady()) {
                    float maxScale = ((MyHolder) holder).ivxiangqing.getMaxScale();
                    PointF center = new PointF(((MyHolder) holder).ivxiangqing.getSWidth(), 0);
                    (holder).ivxiangqing.setScaleAndCenter(maxScale, center);
                }
            }
        });

在Activity的布局文件中

<android.support.v7.widget.RecyclerView
    android:id="@+id/recyclerview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
 ></android.support.v7.widget.RecyclerView>

如果你的Activity还有别的信息最外层嵌套ScrollView就可以了 ,在这里我就不多说了

好了 这样操作Android加载长图就可以

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值