后台返回的图片是长图,长度超过手机长度,我不行剪裁,于是在网上找了一些资料,在这里我吧这些分享出来,希望能帮助需要帮助的人。直接说明了:
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加载长图就可以