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

需求:  一个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);
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));
        }
    });
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值