Android 全局访问扩展文件
我需要在很多活动中访问扩展文件中的很多图像 执行以下操作:Android 全局访问扩展文件,android,apk-expansion-files,Android,Apk Expansion Files,我需要在很多活动中访问扩展文件中的很多图像 执行以下操作: expansionFile = APKExpansionSupport.getAPKExpansionZipFile(context, 8, -1); fileStream = expansionFile.getInputStream("drawables/drawable-hdpi/" + image); Drawable drawable = Drawable.createFromStream(fileStream, null);
expansionFile = APKExpansionSupport.getAPKExpansionZipFile(context, 8, -1);
fileStream = expansionFile.getInputStream("drawables/drawable-hdpi/" + image);
Drawable drawable = Drawable.createFromStream(fileStream, null);
因为每个活动都非常慢,在某些活动中,我需要同时加载4个或更多图像
那么,如果我创建一个新类来抽象每个活动中的代码,您会怎么想?因此我创建了一个类ExpansionFileRetriever,用于检索扩展文件: 公共类ExpansionFileRetriever{
private static ExpansionFileRetriever instance;
public static ExpansionFileRetriever get() {
if(instance == null) instance = getSync();
return instance;
}
private static synchronized ExpansionFileRetriever getSync() {
if(instance == null) instance = new ExpansionFileRetriever();
return instance;
}
public ExpansionFileRetriever(){
// here you can directly access the Application context calling
Context c = App.get();
try {
expansionFile = APKExpansionSupport.getAPKExpansionZipFile(c, 20, -1);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ZipResourceFile expansionFile;
public Drawable getDrawable(String path, String resource) {
InputStream fileStream = null;
String file = path + resource;
try {
fileStream = expansionFile.getInputStream(file);
Drawable drawable = Drawable.createFromStream(fileStream, null);
return drawable;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}
每当我需要访问扩展文件的文件时
我只是用
ExpansionFileRetriever expFile = ExpansionFileRetriever.get();
要获得,比如说一个可绘制的
expFile.getDrawable(path, name)
此方法需要传递什么参数expFile.getDrawable(路径、名称)