zoukankan      html  css  js  c++  java
  • 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);


  • 相关阅读:
    网页a标签:导航制作 怎么让鼠标经过A标签的时候显示块状背景?
    从头开始,慢慢来,今天工作日志
    想看所有的美国系列电影
    百分比宽度并排元素浮动之后,设置margin,padding换行的问题
    TP5.1 首页路由
    关于Layui 响应式移动端轮播图的问题
    BootStrap 栅格化换行问题
    VS code 格式化插件, 仅需一步, 无须配置
    PHPStorm 批量选择,多光标同时编辑相同的内容
    使用Cmder 安装 Composer 出现 "attempt to call a nil value"
  • 原文地址:https://www.cnblogs.com/freexiaoyu/p/5755232.html
Copyright © 2011-2022 走看看