如何在Android的资产/子文件夹中存储图像? 资产文件夹大小有最大限制吗?

How can i store a image in asset/subfolder in android? is there any maximum limit of asset folder size?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to write files to assets folder or raw folder in android?

如何在Android的资产/子文件夹中存储图像? 资产文件夹大小有最大限制吗?
实际上,我是从Web上获取一堆图像并尝试将所有图像下载到资产的子文件夹中吗? 有可能吗?如何?
实际上,我的代码如下,它将图像保存在sdcard中:-

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
String filepath=null;
      try {
       //set the download URL, a url that points to a file on the internet
       //this is the file to be downloaded
       URL url = new URL(Url);
       //create the new connection
       HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

       //set up some things on the connection
       urlConnection.setRequestMethod("GET");
       urlConnection.setDoOutput(true);
        //and connect!
       urlConnection.connect();
       //set the path where we want to save the file
       //in this case, going to save it on the root directory of the
       //sd card.
     File SDCardRoot = Environment.getExternalStorageDirectory();
       //create a new file, specifying the path, and the filename
       //which we want to save the file as.

       String filename="downloadedFile.png";   // you can download to any type of file ex:.jpeg (image) ,.txt(text file),.mp3 (audio file)
       Log.i("Local filename:",""+filename);
       file = new File(SDCardRoot,filename);
       if(file.createNewFile())
       {
        file.createNewFile();
       }

       //this will be used to write the downloaded data into the file we created
       FileOutputStream fileOutput = new FileOutputStream(file);

       //this will be used in reading the data from the internet
       InputStream inputStream = urlConnection.getInputStream();

       //this is the total size of the file
       int totalSize = urlConnection.getContentLength();
       //variable to store total downloaded bytes
       int downloadedSize = 0;

       //create a buffer...
       byte[] buffer = new byte[1024];
       int bufferLength = 0; //used to store a temporary size of the buffer

       //now, read through the input buffer and write the contents to the file
       while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
        //add the data in the buffer to the file in the file output stream (the file on the sd card
        fileOutput.write(buffer, 0, bufferLength);
        //add up the size so we know how much is downloaded
        downloadedSize += bufferLength;
        //this is where you would do something to report the prgress, like this maybe
        Log.i("Progress:","downloadedSize:"+downloadedSize+"totalSize:"+ totalSize) ;

       }
       //close the output stream when done
       fileOutput.close();
       if(downloadedSize==totalSize)   filepath=file.getPath();

      //catch some possible errors...
      } catch (MalformedURLException e) {
       e.printStackTrace();
      } catch (IOException e) {
       filepath=null;
       e.printStackTrace();
      }
      Log.i("filepath:",""+filepath) ;

请为我提供一些解决方案。


您无法将图像存储在资产文件夹中

它是只读的

通常,资产文件夹的最大大小为每个文件1 MB

您可以将图像保存在sdcard中。