package com.zkteam.discover.fresco;

import android.content.Context;

import android.graphics.Bitmap;

import 链接已屏蔽.Uri;

import 链接已屏蔽mon.SimpleCacheKey;

import 链接已屏蔽mon.executors.CallerThreadExecutor;

import 链接已屏蔽mon.executors.UiThreadImmediateExecutorService;

import 链接已屏蔽mon.memory.PooledByteBuffer;

import 链接已屏蔽mon.references.CloseableReference;

import com.facebook.datasource.BaseDataSubscriber;

import com.facebook.datasource.DataSource;

import com.facebook.datasource.DataSubscriber;

import com.facebook.drawee.backends.pipeline.Fresco;

import com.facebook.imagepipeline.core.ImagePipeline;

import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber;

import com.facebook.imagepipeline.image.CloseableImage;

import com.facebook.imagepipeline.request.BasePostprocessor;

import com.facebook.imagepipeline.request.ImageRequest;

import com.facebook.imagepipeline.request.ImageRequestBuilder;

import com.facebook.imagepipeline.request.Postprocessor;

import java.io.InputStream;

import java.util.concurrent.ArrayBlockingQueue;

import java.util.concurrent.ThreadPoolExecutor;

import java.util.concurrent.TimeUnit;

public class FrescoHelper {

/**

* 下载图片

*

* @param context

* @param baseBitmapDataSubscriber onNewResultImpl进行对加载完成bitmap操作,下载失败回调onFailureImpl

*/

public void downloadRequest(Context context, String url, BaseBitmapDataSubscriber baseBitmapDataSubscriber) {

// 获取网络图片

ImageRequest imageRequest = ImageRequestBuilder

.newBuilderWithSource(Uri.parse(url))

.setProgressiveRenderingEnabled(true)

.build();

ImagePipeline imagePipeline = Fresco.getImagePipeline();

DataSource> dataSource =

imagePipeline.fetchDecodedImage(imageRequest, context);

dataSource.subscribe(baseBitmapDataSubscriber, CallerThreadExecutor.getInstance());

}

/**

* 下载图片监听未解码的原始数据的回调

*

* @param context

* @param url

* @param baseDataSubscriber

* @return DataSource 被订阅对象 调用close可消息订阅释放资源

*/

public DataSource downloadRequest(Context context, String url, BaseDataSubscriber baseDataSubscriber) {

// 获取网络图片

ImageRequest imageRequest = ImageRequestBuilder

.newBuilderWithSource(Uri.parse(url))

.setProgressiveRenderingEnabled(true)

.build();

ImagePipeline imagePipeline = Fresco.getImagePipeline();

DataSource> dataSource =

imagePipeline.fetchEncodedImage(imageRequest, context);

dataSource.subscribe(baseDataSubscriber, UiThreadImmediateExecutorService.getInstance());

return dataSource;

}

/**

* 高斯模糊处理器

*

* @return

*/

public Postprocessor newBlurPostProcessor(final Context context, final int blurRadius) {

return new BasePostprocessor() {

@Override

public void process(Bitmap destBitmap, Bitmap sourceBitmap) {

// BitmapUtil.blurThisImage(context, sourceBitmap, destBitmap, blurRadius);

}

};

}

public void clearMemoryCache(Uri uri) {

ImagePipeline imagePipeline = Fresco.getImagePipeline();

if (isInMemoryCache(uri))

imagePipeline.evictFromMemoryCache(uri);

}

public void clearDiskCache(Uri uri) {

ImagePipeline imagePipeline = Fresco.getImagePipeline();

if (isInDiskCache(uri.toString()))

imagePipeline.evictFromDiskCache(uri);

}

public static void clearCache(Uri uri) {

ImagePipeline imagePipeline = Fresco.getImagePipeline();

imagePipeline.evictFromCache(uri);

}

public static boolean isInMemoryCache(Uri uri) {

ImagePipeline imagePipeline = Fresco.getImagePipeline();

return imagePipeline.isInBitmapMemoryCache(uri);

}

public static boolean isInDiskCache(String uri) {

return Fresco.getImagePipelineFactory().getMainFileCache().hasKey(new SimpleCacheKey(uri));

}

public static InputStream getDiskCacheFile(String uri) throws Exception {

return Fresco.getImagePipelineFactory().getMainFileCache().getResource(new SimpleCacheKey(uri)).openStream();

}

public static boolean isInCache(Uri uri) {

return isInMemoryCache(uri) || isInDiskCache(uri.toString());

}

public void asyncCheckInDiskCache(Uri uri, BaseDataSubscriber baseDataSubscriber) {

//异步判断是否在磁盘中

DataSource inDiskCacheSource = Fresco.getImagePipeline().isInDiskCache(uri);

DataSubscriber subscriber = baseDataSubscriber;

// DataSubscriber subscriber = new BaseDataSubscriber() {

//

// @Override

// protected void onNewResultImpl(DataSource dataSource) {

// if (!dataSource.isFinished()) {

// return;

// }

// boolean isInCache = dataSource.getResult();

// }

//

// @Override

// protected void onFailureImpl(DataSource dataSource) {

//

// }

// };

inDiskCacheSource.subscribe(subscriber, new ThreadPoolExecutor(3, 127, 3,

TimeUnit.SECONDS, new ArrayBlockingQueue(3),

new ThreadPoolExecutor.DiscardOldestPolicy()));

}

/**

* 清除内存缓存数据

*/

public static void clearMemoryCache() {

try {

ImagePipeline imagePipeline = Fresco.getImagePipeline();

imagePipeline.clearMemoryCaches();

} catch (Throwable t) {

}

}

/**

* 清除磁盘缓存

*/

public static void clearDiskCache() {

ImagePipeline imagePipeline = Fresco.getImagePipeline();

imagePipeline.clearDiskCaches();

}

/**

* 清除内存及磁盘缓存

*/

public static void clearMemoryAndDiskCache() {

ImagePipeline imagePipeline = Fresco.getImagePipeline();

imagePipeline.clearCaches();

}

}



更多源码 | 好库简介 | 网站地图 | 帮助中心 | 版权说明

Copyright© 2009-2012 OKBASE.NET All Rights Reserved 好库网 版权所有

android 高仿拼多多,Android高仿拼多多分类列表相关推荐

  1. 高仿精仿快播应用android源码下载

    今天给大家在网上找到的一款高仿精仿快播应用android源码,分享给大家,希望大家功能喜欢. 说明源码更新中.... 源码即将上传 也可以到这个网站下载:download 转载于:https://ww ...

  2. android开发常用工具类、高仿客户端、附近厕所、验证码助手、相机图片处理等源码...

    Android精选源码 android开发过程经常要用的工具类源码 Android类似QQ空间个人主页下拉头部放大的布局效果 Android高仿煎蛋客户端,Android完整项目 android帮你找 ...

  3. android开发常用工具类、高仿客户端、附近厕所、验证码助手、相机图片处理等源码

    Android精选源码 android开发过程经常要用的工具类源码 Android类似QQ空间个人主页下拉头部放大的布局效果 Android高仿煎蛋客户端,Android完整项目 android帮你找 ...

  4. android 今日头条加载动画,高仿今日头条加载动画

    01 每每浏览手机app时,发现有的效果体验不错,作为一位程序员,总想要是自己来做,怎么实现. 今天我们来模仿今日头条的加载动画. 首先我们来看一下我们这个demo最终效果,有图有真相. 高仿今日头条 ...

  5. 高仿喜马拉雅听Android客户端,Zhumulangma

    ### 注意:请将lib_common下manifest中喜马拉雅key替换为自己的,不然会提示访问超过限制. https://github.com/TanZhiL/Zhumulangma 本项目仅 ...

  6. 高仿陌陌android+gradle 客户端 源代码含IM即时通信UI

    高仿陌陌android客户端包含 动态.留言本.相册.IM即时聊天等功能, 相关技术: 使用rxperssion 进行权限的动态申请. 使用butterknife将xml元素绑定带对象 源码开源,地址 ...

  7. 高仿知乎Android客户端欢迎引导动画

    这段时间断断续续的抽时间模仿了下知乎Andorid的引导页面,觉得知乎做的更活泼一些吧.对动画,对NineOld实践也就到此告一段落了,再往深挖无非就是一些插值估值等基础的数学知识了.(在这里我要吐槽 ...

  8. 高仿优酷Android客户端图片左右滑动(自动切换)

    本例是用ViewPager去做的实现,支持自动滑动和手动滑动,不仅优酷网,实际上有很多商城和门户网站都有类似的实现: 具体思路: 1. 工程中需要添加android-support-v4.jar,才能 ...

  9. android高仿微信拍摄,Android 仿微信视频拍摄 支持触摸拍摄 长按拍摄

    JCamera This is Android CameraActivity,Imitation WeChat Camera Android 仿微信视频拍摄 支持触摸拍摄 长按拍摄,采用camera2 ...

  10. android获取通知栏消息源代码,Android高仿UC浏览器和360手机卫士消息常驻栏(通知栏)(示例代码)...

    之前网上看了下自己定义消息栏,通知栏,了解到了Notification这个控件.发现UC浏览器等都是这样的类型,今天写个demo实现下.如图: 当中每一个button都有不同的功能.代码例如以下: p ...

最新文章

  1. 三天学会Selenium,阿里p7精心整理自动化测试Selenium大礼包
  2. 四大微博OAuth认证
  3. 2008软考网络工程师题
  4. CF464E The Classic Problem(主席树+哈希+最短路)
  5. 一种table超出高度自动出滚动条的解决方案
  6. 十六个字 一辈子学不完
  7. 使用Skrollr创建视差滚动效果页面
  8. 【Flink】flink-connector-elasticsearch5与flink-connector-elasticsearch6 有什么区别
  9. 查询出两个表中不同的数据
  10. 以太坊PoA共识引擎算法介绍(3)
  11. C++ STL unordered_map按照value排序
  12. Introduction to Computer Networking学习笔记(二十一):TCP拥塞控制-基础、公平分配带宽准则
  13. Mac系统下替换百度云的倍速播放器-Quicktime player 的使用方法
  14. 5V升压8.4V,锂电池充电管理芯片
  15. 100个精彩的开源游戏
  16. Keystone认证服务详细操作流程
  17. JSR303和拦截器
  18. 怎么拍照识别植物的名称呢?教大家一个识别小妙招
  19. python数学编程 pdf,Python数学编程
  20. 计算机,我该学什么?

热门文章

  1. 链路聚合以及生成树(STP)
  2. HDU3001 Traveling (状压dp+三进制+Tsp问题总结)
  3. Mediawiki扩展经验分享
  4. Qt 使用live555
  5. 谈谈我对PMP的一点点感受
  6. 微信小程序获取微信头像和名称(微信小程序摸索第十二天)
  7. 比较好的英文技术网站
  8. linux dts 语法格式,设备树DTS格式解析
  9. zigbee 之 commissioning
  10. 转载:使用Pandas进行数据匹配