Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
沉迷打码的小凳子
glide
提交
e777bc05
G
glide
项目概览
沉迷打码的小凳子
/
glide
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
glide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e777bc05
编写于
4月 21, 2015
作者:
S
Sam
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #430 from Tolriq/cacheFactory
Extends glide disk cache factories
上级
8dbafcd3
c3ea170c
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
133 addition
and
36 deletion
+133
-36
library/src/main/java/com/bumptech/glide/Glide.java
library/src/main/java/com/bumptech/glide/Glide.java
+2
-4
library/src/main/java/com/bumptech/glide/GlideBuilder.java
library/src/main/java/com/bumptech/glide/GlideBuilder.java
+1
-1
library/src/main/java/com/bumptech/glide/load/engine/cache/DiskCache.java
.../java/com/bumptech/glide/load/engine/cache/DiskCache.java
+5
-0
library/src/main/java/com/bumptech/glide/load/engine/cache/DiskLruCacheFactory.java
...bumptech/glide/load/engine/cache/DiskLruCacheFactory.java
+68
-0
library/src/main/java/com/bumptech/glide/load/engine/cache/ExternalCacheDiskCacheFactory.java
...lide/load/engine/cache/ExternalCacheDiskCacheFactory.java
+38
-0
library/src/main/java/com/bumptech/glide/load/engine/cache/InternalCacheDiskCacheFactory.java
...lide/load/engine/cache/InternalCacheDiskCacheFactory.java
+19
-31
未找到文件。
library/src/main/java/com/bumptech/glide/Glide.java
浏览文件 @
e777bc05
...
...
@@ -19,6 +19,7 @@ import android.widget.ImageView;
import
com.bumptech.glide.load.DecodeFormat
;
import
com.bumptech.glide.load.engine.Engine
;
import
com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool
;
import
com.bumptech.glide.load.engine.cache.DiskLruCacheFactory
;
import
com.bumptech.glide.load.engine.cache.MemoryCache
;
import
com.bumptech.glide.load.engine.prefill.BitmapPreFiller
;
import
com.bumptech.glide.load.engine.prefill.PreFillType
;
...
...
@@ -79,10 +80,7 @@ import java.util.List;
* {@link MemoryCache}.
*/
public
class
Glide
{
/** 250 MB of cache. */
static
final
int
DEFAULT_DISK_CACHE_SIZE
=
250
*
1024
*
1024
;
private
static
final
String
DEFAULT_DISK_CACHE_DIR
=
"image_manager_disk_cache"
;
private
static
final
String
TAG
=
"Glide"
;
private
static
volatile
Glide
glide
;
...
...
@@ -110,7 +108,7 @@ public class Glide {
* @param context A context.
*/
public
static
File
getPhotoCacheDir
(
Context
context
)
{
return
getPhotoCacheDir
(
context
,
DEFAULT_DISK_CACHE_DIR
);
return
getPhotoCacheDir
(
context
,
D
iskLruCacheFactory
.
D
EFAULT_DISK_CACHE_DIR
);
}
/**
...
...
library/src/main/java/com/bumptech/glide/GlideBuilder.java
浏览文件 @
e777bc05
...
...
@@ -189,7 +189,7 @@ public class GlideBuilder {
}
if
(
diskCacheFactory
==
null
)
{
diskCacheFactory
=
new
InternalCacheDiskCacheFactory
(
context
,
Glide
.
DEFAULT_DISK_CACHE_SIZE
);
diskCacheFactory
=
new
InternalCacheDiskCacheFactory
(
context
);
}
if
(
engine
==
null
)
{
...
...
library/src/main/java/com/bumptech/glide/load/engine/cache/DiskCache.java
浏览文件 @
e777bc05
...
...
@@ -13,6 +13,11 @@ public interface DiskCache {
* An interface for lazily creating a disk cache.
*/
interface
Factory
{
/** 250 MB of cache. */
int
DEFAULT_DISK_CACHE_SIZE
=
250
*
1024
*
1024
;
String
DEFAULT_DISK_CACHE_DIR
=
"image_manager_disk_cache"
;
/**
* Returns a new disk cache, or {@code null} if no disk cache could be created.
*/
...
...
library/src/main/java/com/bumptech/glide/load/engine/cache/DiskLruCacheFactory.java
0 → 100644
浏览文件 @
e777bc05
package
com.bumptech.glide.load.engine.cache
;
import
java.io.File
;
/**
* Creates an {@link com.bumptech.glide.disklrucache.DiskLruCache} based disk cache in the specified disk cache
* directory.
* <p/>
* If you need to make I/O access before returning the cache directory use
* the {@link DiskLruCacheFactory#DiskLruCacheFactory(CacheDirectoryGetter, int)} constructor variant.
*/
public
class
DiskLruCacheFactory
implements
DiskCache
.
Factory
{
private
final
int
diskCacheSize
;
private
final
CacheDirectoryGetter
cacheDirectoryGetter
;
/**
* Interface called out of UI thread to get the cache folder.
*/
public
interface
CacheDirectoryGetter
{
File
getCacheDirectory
();
}
public
DiskLruCacheFactory
(
final
String
diskCacheFolder
,
int
diskCacheSize
)
{
this
(
new
CacheDirectoryGetter
()
{
@Override
public
File
getCacheDirectory
()
{
return
new
File
(
diskCacheFolder
);
}
},
diskCacheSize
);
}
public
DiskLruCacheFactory
(
final
String
diskCacheFolder
,
final
String
diskCacheName
,
int
diskCacheSize
)
{
this
(
new
CacheDirectoryGetter
()
{
@Override
public
File
getCacheDirectory
()
{
return
new
File
(
diskCacheFolder
,
diskCacheName
);
}
},
diskCacheSize
);
}
/**
* When using this constructor {@link CacheDirectoryGetter#getCacheDirectory()} will be called out of UI thread,
* allowing to do I/O access without performance impacts.
*
* @param cacheDirectoryGetter Interface called out of UI thread to get the cache folder.
* @param diskCacheSize Desired max bytes size for the LRU disk cache.
*/
public
DiskLruCacheFactory
(
CacheDirectoryGetter
cacheDirectoryGetter
,
int
diskCacheSize
)
{
this
.
diskCacheSize
=
diskCacheSize
;
this
.
cacheDirectoryGetter
=
cacheDirectoryGetter
;
}
@Override
public
DiskCache
build
()
{
File
cacheDir
=
cacheDirectoryGetter
.
getCacheDirectory
();
if
(
cacheDir
==
null
)
{
return
null
;
}
if
(!
cacheDir
.
mkdirs
()
&&
(!
cacheDir
.
exists
()
||
!
cacheDir
.
isDirectory
()))
{
return
null
;
}
return
DiskLruCacheWrapper
.
get
(
cacheDir
,
diskCacheSize
);
}
}
library/src/main/java/com/bumptech/glide/load/engine/cache/ExternalCacheDiskCacheFactory.java
0 → 100644
浏览文件 @
e777bc05
package
com.bumptech.glide.load.engine.cache
;
import
android.content.Context
;
import
java.io.File
;
/**
* Creates an {@link com.bumptech.glide.disklrucache.DiskLruCache} based disk cache in the external disk cache
* directory.
* <p/>
* <b>Images can be read by everyone when using external disk cache.</b>
*/
public
final
class
ExternalCacheDiskCacheFactory
extends
DiskLruCacheFactory
{
public
ExternalCacheDiskCacheFactory
(
Context
context
)
{
this
(
context
,
DiskCache
.
Factory
.
DEFAULT_DISK_CACHE_DIR
,
DiskCache
.
Factory
.
DEFAULT_DISK_CACHE_SIZE
);
}
public
ExternalCacheDiskCacheFactory
(
Context
context
,
int
diskCacheSize
)
{
this
(
context
,
DiskCache
.
Factory
.
DEFAULT_DISK_CACHE_DIR
,
diskCacheSize
);
}
public
ExternalCacheDiskCacheFactory
(
final
Context
context
,
final
String
diskCacheName
,
int
diskCacheSize
)
{
super
(
new
CacheDirectoryGetter
()
{
@Override
public
File
getCacheDirectory
()
{
File
cacheDirectory
=
context
.
getExternalCacheDir
();
if
(
cacheDirectory
==
null
)
{
return
null
;
}
if
(
diskCacheName
!=
null
)
{
return
new
File
(
cacheDirectory
,
diskCacheName
);
}
return
cacheDirectory
;
}
},
diskCacheSize
);
}
}
library/src/main/java/com/bumptech/glide/load/engine/cache/InternalCacheDiskCacheFactory.java
浏览文件 @
e777bc05
...
...
@@ -2,47 +2,35 @@ package com.bumptech.glide.load.engine.cache;
import
android.content.Context
;
import
com.bumptech.glide.Glide
;
import
java.io.File
;
/**
* Creates an {@link com.bumptech.glide.disklrucache.DiskLruCache} based disk cache in the internal disk cache
* directory.
*/
public
final
class
InternalCacheDiskCacheFactory
implements
DiskCache
.
Factory
{
private
final
Context
context
;
private
final
String
diskCacheName
;
private
final
int
diskCacheSize
;
public
final
class
InternalCacheDiskCacheFactory
extends
DiskLruCacheFactory
{
public
InternalCacheDiskCacheFactory
(
Context
context
,
int
diskCacheSize
)
{
this
(
context
,
null
/*diskCacheName*/
,
diskCacheSize
);
public
InternalCacheDiskCacheFactory
(
Context
context
)
{
this
(
context
,
DiskCache
.
Factory
.
DEFAULT_DISK_CACHE_DIR
,
DiskCache
.
Factory
.
DEFAULT_DISK_CACHE_SIZE
);
}
public
InternalCacheDiskCacheFactory
(
Context
context
,
String
diskCacheName
,
int
diskCacheSize
)
{
this
.
context
=
context
;
this
.
diskCacheName
=
diskCacheName
;
this
.
diskCacheSize
=
diskCacheSize
;
public
InternalCacheDiskCacheFactory
(
Context
context
,
int
diskCacheSize
)
{
this
(
context
,
DiskCache
.
Factory
.
DEFAULT_DISK_CACHE_DIR
,
diskCacheSize
);
}
public
InternalCacheDiskCacheFactory
(
final
Context
context
,
final
String
diskCacheName
,
int
diskCacheSize
)
{
super
(
new
CacheDirectoryGetter
()
{
@Override
public
DiskCache
build
()
{
DiskCache
diskCache
=
null
;
final
File
cacheDir
;
if
(
diskCacheName
!=
null
)
{
cacheDir
=
Glide
.
getPhotoCacheDir
(
context
,
diskCacheName
);
}
else
{
cacheDir
=
Glide
.
getPhotoCacheDir
(
context
);
public
File
getCacheDirectory
()
{
File
cacheDirectory
=
context
.
getCacheDir
();
if
(
cacheDirectory
==
null
)
{
return
null
;
}
if
(
cacheDir
!=
null
)
{
diskCache
=
DiskLruCacheWrapper
.
get
(
cacheDir
,
diskCacheSize
);
if
(
diskCacheName
!=
null
)
{
return
new
File
(
cacheDirectory
,
diskCacheName
);
}
if
(
diskCache
==
null
)
{
diskCache
=
new
DiskCacheAdapter
();
return
cacheDirectory
;
}
return
diskCache
;
},
diskCacheSize
)
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录