美文网首页
Picasso加载长图,宽度铺满屏幕,高度自适应

Picasso加载长图,宽度铺满屏幕,高度自适应

作者: 萤火虫叔叔 | 来源:发表于2018-01-08 20:56 被阅读1187次

    用Picasso加载长图非常简单方便。只需Picasso.with(mContent) .load(url) .into(mImageView)即可。

    1、用法

    layout布局

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/placeholder_img" />
    

    java代码

    Picasso.with(this.getContext())
    .load(url)
    .into(mImageView);
    

    正文结束


    2、容易踩的坑

    Picasso千万不要调用fit函数
    因为fit函数的原理是,图片加载完成后,会回去测量ImageView的高度,根据ImageView的宽和高设置实际显示的尺寸。当layout_weight设置了wrap_content,在图片加载未完成时,ImageView的实际高度为0,当调用fit函数时,会以0作为ImageView的高度显示图片,所以最终导致看不到图片。这个bug找了两个小时,所以记录下来,希望大家快速跳过这个坑。

    错误演示1:
    layout布局

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:src="@drawable/placeholder_img" />
    

    java代码

    Picasso.with(this.getContext())
    .load(url)
    .fit()
    .into(mImageView);
    

    现象:图片看不到。

    错误演示2:
    layout布局

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="500dp"
        android:src="@drawable/placeholder_img" />
    

    java代码

    Picasso.with(this.getContext())
    .load(url)
    .fit()
    .into(mImageView);
    

    现象:图片被压缩变形。


    3、Picasso是啥

    Picasso是一个强大的图片加载、缓存框架,强烈推荐。
    使用方式:在app的build.gradle中引入Picasso的依赖

    compile 'com.squareup.picasso:picasso:2.5.2'
    

    截图如下:


    image.png

    其他相关优质文章:

    相关文章

      网友评论

          本文标题:Picasso加载长图,宽度铺满屏幕,高度自适应

          本文链接:https://www.haomeiwen.com/subject/syhinxtx.html