您的位置:首页 > 移动开发 > Android开发

Android开发之--一activity加载长图

2017-03-28 17:35 337 查看
需求:  一个activity只加载显示一张长图,宽度固定为屏幕的宽,高度自适应滑动,并且可以手势放大缩小

不知道你们会怎么实现呢,今天我来记录一下自己的实现

SubsamplingScaleImageView  一个开源控件,使用方法:

布局中:只有这一个控件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_article_detail_hufu"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.jixiong.teen.activity.ArticleDetailHufuActivity">

<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
android:id="@+id/ivHufuDetail"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</RelativeLayout>


java代码中:

首先,找到这个控件

@Bind(R.id.ivHufuDetail)
SubsamplingScaleImageView ivHufuDetail;


然后设置初始值

ivHufuDetail.setMinimumScaleType(SubsamplingScaleImageView.SCALE_TYPE_CENTER_CROP);
4000

ivHufuDetail.setMinScale(1.0F);//最小显示比例
ivHufuDetail.setMaxScale(10.0F);//最大显示比例(太大了图片显示会失真,因为一般微博长图的宽度不会太宽)


然后,加载服务器传来的图片,这里用的glide

if (!imageUrl.isEmpty()) {
Glide.with(this)
.load(imageUrl).downloadOnly(new SimpleTarget<File>() {
@Override
public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation) {
// 将保存的图片地址给SubsamplingScaleImageView,这里注意设置ImageViewState设置初始显示比例
ivHufuDetail.setImage(ImageSource.uri(Uri.fromFile(resource)), new ImageViewState(1.0F, new PointF(0, 0), 0));
}
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: