Android复制assets目录下的图片到内存
有些Android应用需要一些初始化数据,但是考虑到国内这种龟速网络和高昂的网络流量费用,可以将这些初始化数据存在数据库中,有时遇到图片的情况下,可以在初始化的阶段将assets目录下的图片复制到内存中。
下面是我实现的一个方法:
|
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; } |

浙公网安备 33010602011771号