FrescoAll
2017-04-01 21:04:27 0 举报
FrescoAll是一款先进的数字绘画软件,专为艺术家和设计师打造。它提供了丰富的画笔、颜色和纹理选择,让创作者能够自由地表达他们的创意。FrescoAll还具有强大的图层管理功能,可以轻松地调整图像的透明度和混合模式,实现无缝的图像融合。此外,FrescoAll还支持高分辨率渲染,确保最终作品的细节和质感得到完美呈现。无论是绘制插图、设计海报还是制作动画,FrescoAll都能满足用户的需求,成为数字艺术创作的得力助手。
作者其他创作
大纲/内容
CloseableStaticBitmap
MemoryCache
使用
实现
ImageDecoder
ResizeAndRotateProducer
AbstractProducerToDataSourceAdapter
SettableProducerContext :允许客户端更改其内部状态RequestListener :
构造函数中:调用了RListenner的onRequestStart()、并调用了传入的producer.produceResults(createConsumer())Consumer createConsumer():返回了一个BConsumer其内部实现了onNewResultImpl、onFailureImpl、onCancellationImpl、onProgressUpdateImpl,内部分别调用了本类的相应函数,相应函数中都调用了RListener的相应函数和父类中的具体实现。本类是一个适配器一方面继承了ADS从而可以调用其的一些函数以设置结果,另以方面可以从Producer中去获取结果
AnimatedImageResult
AnimatedImage:GifImage或WebpImage ACloseableReference:mPreviewBitmap BListCloseableReference:mDecodedFrames C
提供三个实例,和释放B和C
AnimatedDrawableFactory
ImagePipelineFactory
AnimatedFactoryProvider(类)
提供一个AnimatedFactory的实现
提供
Drawable
AnimatableDrawable(接口)
创建ValueAnimator和ValueAnimator.AnimatorUpdateListener
本地资源
InstrumentedMemoryCache
该类为CountingMemoryCache的代理类,所有的操作走后都交给它来处理。
找到了数据
PipelineDraweeControllerFactory
设置图像
DelegatingAnimatedDrawableBackend(类)
代理AnimatedDrawableBackendImpl
将获取的数据写入编码图片的内存缓存
ThreadHandoffProducer
AnimatedFactoryImpl(类)
AnimatedDrawableBackendProvider:AAnimatedDrawableUtil :BAnimatedDrawableFactory:C AnimatedImageFactory :DExecutorSupplier:EPlatformBitmapFactory : F
getAnimatedDrawableFactory(Context):提供AnimatedDrawableFactoryImplgetAnimatedImageFactory():提供AnimatedImageFactoryImpl
没找到数据
DataSource
boolean isClosed()T getResult()boolean hasResult()boolean isFinished()boolean hasFailed()Throwable getFailureCause()float getProgress()
创建并开启职责链
DiskCacheWriteProducer
去编码图片的内存缓存中读取数据
PipelineDraweeController
Drawable createDrawable(CloseableImage):如果这是CloseableStaticBitmap创建一个BitmapDrawable 返回,如果是CloseableAnimatedImage那么通过ADFactory返回一个AnimatedDrawable。DataSourceCloseableReference getDataSource():调用DSSupplier.get()releaseImage(CloseableReference ):关闭该引用getCachedImage() :从MemoryCache中获取缓存
继承
SimpleDraweeView
依赖
职责链Producer
内部使用
内部类
FileCache
DiskDumpInfo(内部类)
内部接口
进入后台线程
DiskCacheReadProducer
提供用于生产AnimatedDrawableBackendImpl
DiskDumpInfoEntry(内部类)
CloseableAnimatedImage
FileCache(接口)处理硬盘缓存的逻辑,使用DiskStorage对文件缓存进行操作
AnimatedImageFactory(接口)
将EncodedImage解码成为Gif或Webp的CloseableImage
AbstractDataSource
AnimatedImageFactoryImpl(类)
AnimatedDrawableBackendProvider:APlatformBitmapFactory:BGifImage:GifWebPImage:Webp
EncodedImage、ImageDecodeOptions、Bitmap.Config通过Gif和Webp使用Jni解码成AnimatedImage最后产生一个AnimatedImageResult放入CloseableAnimatedImage中
对编码图片进行解码
通过Bitmap获取BitmapDrawable
将获取的数据写入硬盘缓存
代理继承
产生
包装
AnimatedDrawableBackendImpl(类)
AnimatedDrawableUtil:AAnimatedImageResult:BAnimatedImage:CAnimatedDrawableFrameInfo[]:D
创建的时候只传入A和B其他成员都是从B中生成
JPEG和静态图片的实现
去解码图片的内存缓存中读取数据
被使用
initializeDrawee初始化
AnimatedFactory(接口)
提供AnimatedDrawableFactory或者AnimatedImageFactory的工厂
对编码的图片进行变换
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
默认实现
数据
被代理
CloseableProducerToDataSourceAdapter
本类类似于外观器,只是一个入口
JpegTranscoder
ScheduledExecutorService:AAnimatedDrawableDiagnostics:BMonotonicClock:CAnimatedDrawableCachingBackendImpl:DCloseableReference:mLastDrawnFrame E
用来根据AnimatedDrawableCachingBackendImpl提供的数据不断绘制一帧一帧的绘制动画。
PipelineDraweeControllerBuilder
ImagePipeline:PipelineDraweeControllerFactory:
ImagePipeline
DiskStorageCache硬盘缓存管理类,其使用DefaultDiskStorage进行对硬盘缓存进行管理
EncodedMemoryCacheProducer.EncodedMemoryCacheConsumer
Fresco
static PipelineDraweeControllerBuilderSupplier
DrawableFactory
调用使用者对图片的处理
提供一个用于变换图片的Consumer
CloseableImage
Inserter(内部接口)
具体实现
AnimatedDrawableFactoryImpl(类)
AnimatedDrawableBackendProvider:AAnimatedDrawableCachingBackendImplProvider:BAnimatedDrawableUtil:CScheduledExecutorService:DMonotonicClock:EResources:F
1.只处理CloseableAnimatedImage,如果传入的不是的话就抛出异常。2.获取到AnimatedImageResult之后通过A创建AnimatedDrawableBackend。再通过AnimatedDrawableBackend和B创建AnimatedDrawableCachingBackend3.最后D、E和AnimatedDrawableCachingBackend创建AnimatedDrawable并返回
网络资源
get提供
ResizeAndRotateProducer.TransformingConsumer
创建并使用
找到数据直接使用
NetworkFetchProducer
LocalFetchProducer
CacheTrimStrategy:double getTrimRatio(MemoryTrimType )当缓存策略产生变化时候回调
BitmapMemoryCacheGetProducer
DecodeProducer
getAnimatedDrawableFactory(Context)提供
DraweeController
void setHierarchy(DraweeHierarchy )void onAttach()void onDetach()void onViewportVisibilityHint(boolean)boolean onTouchEvent(MotionEvent )Animatable getAnimatable()
EncodedMemoryCacheProducer
ThreadHandoffProducerQueue
关联
PipelineDraweeControllerBuilderSupplier implements Supplier
ImagePipeline:PipelineDraweeControllerFactory:Set mBoundControllerListeners:默认为null
构造函数中:根据ImagePipelineFactory获取ImagePipeline,创建PipelineDraweeControllerFactoryget():返回一个PDCB
CloseableAnimatedImage(类)
AnimatedImageResult:A
包装A提供各种AnimatedImage的数据如长宽。这是可关闭的,会被引用在CloseableReference中,这个对象通过A#dispose()关闭本对象
GenericDraweeHierarchy
AnimatedDrawableFactoryImpl
从硬盘缓存中读取数据
这个缓存器使用最近使用最少策略来管理缓存条目,一个mExclusiveEntries保存已经没有被引用的缓存条目,一个 mCachedEntries保存所有的条目包括没有引用的条目。每当缓存策略改变和一定时间缓存配置的更新的时候,就会将 待销毁条目Map中的条目一个个移除,知道缓存大小符合配置。当每个条目状态变化的时候,可以调用回调。CountingLruMap内部使用LinkedHashMap进行储存。
提供写入硬盘缓存的Consumer
用于创建AnimatedDrawableCachingBackendImpl
PostprocessorProducer
DiskCachePolicy
职责链Consumer
PostprocessorProducer.PostprocessorConsumer
提供一个使用者对图片处理的Consumer
AnimatedDrawable(类)
创建一个ValueAnimator,这个ValueAnimator控制,继承AbstractAnimatedDrawable的代码,以播放动画。
SettableDraweeHierarchy
DiskCacheWriteProducer.DiskCacheWriteConsumer
Entry(内部接口)
String getId():获取唯一的id。long getTimestamp():获取创建时间。long getSize():获取缓存文件大小,创建时候计算,之后不变。BinaryResource getResource():获取缓存资源。
DiskStorage(接口)文件缓存的接口,直接对文件缓存进行操作
getAnimatedImageFactory()
AnimatedDrawableFactory(接口)
基于一个AnimatedImage,创建一个AnimatedDrawable。
传入
AnimatedDrawableCachingBackend(接口)
获取预览帧和获取某一帧的Bitmap
获取AnimatedDrawable
DecodeProducer.ProgressiveDecoder
ControllerListener sAutoPlayAnimationsListener:实现了BaseControllerListenerSet mBoundControllerListeners:Object mCallerContext:REQUEST mImageRequest:普通请求REQUEST mLowResImageRequest:低精度请求REQUEST[] mMultiImageRequests:多请求SupplierDataSource mDataSourceSupplier:ControllerListener mControllerListener:DraweeController mOldController:上一次的DCenum CacheLevel:缓存的等级分为:从网络取回、从硬盘缓存中取回、从内存缓存中取回
提供一个用于解码的Consumer
SimpleDraweeControllerBuilder
SimpleDraweeControllerBuilder setCallerContext(callerContext)SimpleDraweeControllerBuilder setUri(Uri uri)SimpleDraweeControllerBuilder setUri(String uriString)SimpleDraweeControllerBuilder setOldController(DraweeController)DraweeController build()
DefaultDiskStorage
K keyCloseableReference valueRefint clientCount:被客户端引用的次数。boolean isOrphanEntryStateObserver observer:条目状态改变时候回调
AnimatedDrawableCachingBackendImpl
DefaultImageDecoder
BufferedDiskCache
AnimatedDrawableBackend(接口)
获取AnimatedImageResult中的信息
gif或Webp动画的实现
代理
0 条评论
下一页
为你推荐
查看更多
抱歉,暂无相关内容