有些Android應用須要一些初始化數據,可是考慮到國內這種龜速網絡和高昂的網絡流量費用,能夠將這些初始化數據存在數據庫中,有時遇到圖片的狀況下,能夠在初始化的階段將assets目錄下的圖片複製到內存中。java
下面是我實現的一個方法:android
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
/**
* 讀取Assets文件夾中的圖片資源
* @param context
* @param fileName
* @return
*/
public
static
Bitmap getImageFromAssetsFile(Context context, String fileName) {
//獲取應用的包名
String packageName = context.getPackageName();
//定義存放這些圖片的內存路徑
String path=
"/data/data/"
+packageName;
//若是這個路徑不存在則新建
File file =
new
File(path);
Bitmap image =
null
;
boolean
isExist = file.exists();
if
(!isExist){
file.mkdirs();
}
//獲取assets下的資源
AssetManager am = context.getAssets();
try
{
//圖片放在img文件夾下
InputStream is = am.open(
"img/"
+fileName);
image = BitmapFactory.decodeStream(is);
FileOutputStream out =
new
FileOutputStream(path+
"/"
+fileName);
//這個方法很是贊
image.compress(Bitmap.CompressFormat.PNG,
100
,out);
out.flush();
out.close();
is.close();
}
catch
(IOException e) {
e.printStackTrace();
}
return
image;
}
|