fresco Bitmap too large to be uploaded into a texture

fresco加载图片方法

布局文件引入 xmlns:fresco="http://schemas.android.com/apk/res-auto"

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@id/img_icon"
        android:layout_width="42.0dip"
        android:layout_height="42.0dip"
        android:layout_marginLeft="12.0dip"
        android:layout_marginTop="20.0dip"
        fresco:roundAsCircle="true"
        fresco:failureImage="@drawable/my_face"
        fresco:failureImageScaleType="centerInside"/>

加载图片方法

m.SimpleDraweeView.setImageURI(Uri.parse(imageUrl));

加载网络图片一切正常(网络图片测试没有1M以上的 都是通过七牛云存储裁剪后显示的)
当获取本地手机相册的时候 提示Bitmap too large to be uploaded into a texture 
fresco默认不是打印Log的 打开方式如下
Set<RequestListener> requestListeners = new HashSet<>();
        requestListeners.add(new RequestLoggingListener());
        ImagePipelineConfig config = ImagePipelineConfig.newBuilder(appContext)
                // other setters
                .setRequestListeners(requestListeners)
                .build();
        Fresco.initialize(appContext, config);
        FLog.setMinimumLoggingLevel(FLog.VERBOSE);

搜索  Bitmap too large to be uploaded into a texture  关键字网上说在 application 加入android:hardwareAccelerated="false" 关闭硬件加速,个人感觉既然作为最火的fresco一定有解决办法于是在官网找到了 

http://www.fresco-cn.org/docs/requesting-multiple-images.html 

有这么一个属性 .setLocalThumbnailPreviewsEnabled(true

本功能仅支持本地URI,并且是JPEG图片格式

如果本地JPEG图,有EXIF的缩略图,image pipeline 可以立刻返回它作为一个缩略图。Drawee 会先显示缩略图,完整的清晰大图在 decode 完之后再显示。

 我的理解是fresco去获取相册的缩略图经测试还是不行依然不显示。

我又换了关键字搜索 在日志前面加入了fresco 变成 fresco Bitmap too large to be uploaded into a texture 

在结果中第一条记录就是http://stackoverflow.com/questions/33676807/fresco-bitmap-too-large-to-be-uploaded-into-a-texture

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(imageUrl))
                .setProgressiveRenderingEnabled(true)
                .setAutoRotateEnabled(true)
                .setLocalThumbnailPreviewsEnabled(true)
                .setResizeOptions(new ResizeOptions(view.getLayoutParams().width, view.getLayoutParams().height))
                .build();
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setImageRequest(request)
                .setOldController(view.getController())
                .setAutoPlayAnimations(true).build();
        view.setController(controller);

运行测试显示正常 大功告成^0^

---------------------------------------------------分割线----------------------------------------------------------------
在次编辑 以下代码也可以实现加载本地相册,上面代码有时候有错误 无法获取宽和高,除非指定
ImagePipelineConfig config = ImagePipelineConfig.newBuilder(getApplicationContext())
.setDownsampleEnabled(true)
.build();
Fresco.initialize(getApplicationContext(), config);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值