fresco
2017-02-28 16:26:08 0 举报
登录查看完整内容
Fresco是一种古老的绘画技法,源自意大利文艺复兴时期。它的特点是在湿壁上直接绘制,使用水溶性颜料和天然树脂作为媒介。这种技法使得画面色彩鲜艳、质感生动,且具有独特的立体感。然而,由于需要在湿润环境中完成,作品的保存时间相对较短。尽管如此,Fresco仍然被认为是一种极具艺术价值和技巧性的绘画方式,吸引了无数艺术家和观众的关注。如今,虽然现代绘画技术已经发展出许多替代品,但Fresco依然在一些特殊场合和艺术作品中得以保留和应用。
作者其他创作
大纲/内容
K keyCloseableReference valueRefint clientCount:被客户端引用的次数。boolean isOrphanEntryStateObserver observer:条目状态改变时候回调
依赖
SimpleDraweeControllerBuilder
SimpleDraweeControllerBuilder setCallerContext(callerContext)SimpleDraweeControllerBuilder setUri(Uri uri)SimpleDraweeControllerBuilder setUri(String uriString)SimpleDraweeControllerBuilder setOldController(DraweeController)DraweeController build()
ThreadHandoffProducerQueue
Deque mRunnableList:任务列表Executor:获取的是轻量级后台线程mLightWeightBackgroundExecutor
addToQueueOrExecute(Runnable runnable):运行任务或者将任务放在queue中,等等stop的时候一次性用完stopQueuing():将累积在queue中的任务全部调用
代理继承
ControllerListener sAutoPlayAnimationsListener:实现了BaseControllerListenerSet mBoundControllerListeners:Object mCallerContext:REQUEST mImageRequest:普通请求REQUEST mLowResImageRequest:低精度请求REQUEST[] mMultiImageRequests:多请求SupplierDataSource mDataSourceSupplier:ControllerListener mControllerListener:DraweeController mOldController:上一次的DCenum CacheLevel:缓存的等级分为:从网络取回、从硬盘缓存中取回、从内存缓存中取回
PipelineDraweeControllerBuilderSupplier implements Supplier
ImagePipeline:PipelineDraweeControllerFactory:Set mBoundControllerListeners:默认为null
构造函数中:根据ImagePipelineFactory获取ImagePipeline,创建PipelineDraweeControllerFactoryget():返回一个PDCB
ProducerFactory
+ operation1(params):returnType- operation2(params)- operation3()
这个缓存器使用最近使用最少策略来管理缓存条目,一个mExclusiveEntries保存已经没有被引用的缓存条目,一个 mCachedEntries保存所有的条目包括没有引用的条目。每当缓存策略改变和一定时间缓存配置的更新的时候,就会将 待销毁条目Map中的条目一个个移除,知道缓存大小符合配置。当每个条目状态变化的时候,可以调用回调。CountingLruMap内部使用LinkedHashMap进行储存。
内部类
继承
Fresco
static PipelineDraweeControllerBuilderSupplier
ImagePipelineConfig.Builder
AnimatedImageFactory Bitmap.Config Supplier mBitmapMemoryCacheParamsSupplier CacheKeyFactory :根据uri的toString来生成Key Supplier mEncodedMemoryCacheParamsSupplier ExecutorSupplier ImageCacheStatsTracker ImageDecoder DiskCacheConfig 主要文件硬盘的缓存创建配置 MemoryTrimmableRegistry:内存变化监听器的注册类 NetworkFetcher PlatformBitmapFactory:优化图片的工厂 PoolFactory :各种池子的创建工厂 ProgressiveJpegConfig:渐进式图片的配置 Set :请求监听器的集合 DiskCacheConfig :小图片的硬盘缓存的创建配置 FileCacheFactory :文件缓存的创建工厂 ImageDecoderConfig :ImageDecoder 的配置
initializeDrawee初始化
InstrumentedMemoryCache
该类为CountingMemoryCache的代理类,所有的操作走后都交给它来处理。
关联
内部接口
getProducerFactoryc创建
AnimatedDrawableFactory
Drawable create(CloseableImage )
PipelineDraweeControllerBuilder
ImagePipeline:PipelineDraweeControllerFactory:
实现
DefaultImageDecoder
AnimatedImageFactory mAnimatedImageFactoryBitmap.Config mBitmapConfigPlatformDecoder mPlatformDecoder:解码器ImageDecoder mDefaultDecoder:直接实现了decode()用于选择解码方法
AbstractProducerToDataSourceAdapter
SettableProducerContext :允许客户端更改其内部状态RequestListener :
构造函数中:调用了RListenner的onRequestStart()、并调用了传入的producer.produceResults(createConsumer())Consumer createConsumer():返回了一个BConsumer其内部实现了onNewResultImpl、onFailureImpl、onCancellationImpl、onProgressUpdateImpl,内部分别调用了本类的相应函数,相应函数中都调用了RListener的相应函数和父类中的具体实现。本类是一个适配器一方面继承了ADS从而可以调用其的一些函数以设置结果,另以方面可以从Producer中去获取结果
被代理
DraweeEventTracker :单例,内置阻塞队列,队列中放置各种各种enum作为事件。 DeferredReleaser :单例,内置main线程的Handler,用于延迟将run发送给main线程 Executor:主线程的Executor,将ui事件发往主线程 RetryManager :点击重试的类,默认最大4次。 GestureDetector :手势处理器用于处理从SDV传过来的TouchEvent ControllerListener :控制回调,监听图片 各个获取各个流程,并回调响应函数 ControllerViewportVisibilityListener SettableDraweeHierarchy :分层的Drawable,用于处理返回后的图片数据 Drawable mControllerOverlay; Object mCallerContext:上下文监听器,可以停止操作 boolean mIsAttached; boolean mIsRequestSubmitted; boolean mIsVisibleInViewportHint; boolean mHasFetchFailed; boolean mRetainImageOnFailure DataSource : 数据资源 T mFetchedImage:获取到的图片数据 Drawable mDrawable Throwable mInitTrace
PipelineDraweeControllerFactory
DataSource
boolean isClosed()T getResult()boolean hasResult()boolean isFinished()boolean hasFailed()Throwable getFailureCause()float getProgress()
DraweeController
void setHierarchy(DraweeHierarchy )void onAttach()void onDetach()void onViewportVisibilityHint(boolean)boolean onTouchEvent(MotionEvent )Animatable getAnimatable()
AnimatedDrawableFactoryImpl
AnimatedDrawableBackendProviderAnimatedDrawableCachingBackendImplProviderAnimatedDrawableUtilScheduledExecutorServiceMonotonicClock
Drawable create(CloseableImage closeableImage)AnimatedDrawable create(AnimatedImageResult,AnimatedDrawableOptions)AnimatedImageResult getImageIfCloseableAnimatedImage(CloseableImage )AnimatedDrawable createAnimatedDrawable(AnimatedDrawableOptions AnimatedDrawableBackend )
AbstractDataSource
ImagePipeline
DefaultExecutorSupplier
Executor mIoBoundExecutor:io线程池,默认两个线程Executor mDecodeExecutor:解码线程池,设置了略低的优先级Executor mBackgroundExecutor:后台线程池,设置了略低的优先级Executor mLightWeightBackgroundExecutor:轻量级后台线程池,默认1个线程,设置了略低的优先级
ImagePipelineFactory
initialize(ImagePipelineConfig imagePipelineConfig):初始化
SettableDraweeHierarchy
NetworkFetcher
ExecutorSupplier
Executor forLocalStorageRead() Executor forLocalStorageWrite() Executor forDecode() Executor forBackgroundTasks() Executor forLightweightBackgroundTasks()
public abstract int getSizeInBytes() public abstract void close() public abstract boolean isClosed() public QualityInfo getQualityInfo() public boolean isStateful()
CloseableProducerToDataSourceAdapter
本类类似于外观器,只是一个入口
getImagePipeline创建
CacheTrimStrategy:double getTrimRatio(MemoryTrimType )当缓存策略产生变化时候回调
提供
get提供
PipelineDraweeController
Drawable createDrawable(CloseableImage):如果这是CloseableStaticBitmap创建一个BitmapDrawable 返回,如果是CloseableAnimatedImage那么通过ADFactory返回一个AnimatedDrawable。DataSourceCloseableReference getDataSource():调用DSSupplier.get()releaseImage(CloseableReference ):关闭该引用getCachedImage() :从MemoryCache中获取缓存
ImageDecoder
0 条评论
回复 删除
下一页