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);


  • 相关阅读:
    用 WP7开发包 安装 WP7程序(XAP文件)
    在Windows 2003,XP上安装Windows Phone 7开发工具
    AutoResetEvent实现单并发控制
    .net源码研究(1)HashTable
    聚簇索引(Clustered Index)和非聚簇索引 (Non Clustered Index)
    信号量(semaphore)支持 多并发(n>=1)同步锁
    AtlasControlToolkit应用点滴(一)
    依赖注入dependency injection
    AtlasControlToolkit.CascadingDropDownNameValue自定义用法
    Thread.Join
  • 原文地址:https://www.cnblogs.com/freexiaoyu/p/5755232.html
Copyright © 2011-2022 走看看