1
這是我創建的用於將圖像「庫」保存到外部存儲器以便在另一個應用程序中使用該文件的代碼。這是一個包含對象的ArrayList的二進制文件。將對象保存爲二進制文件到外部存儲器? (Android)
這是什麼讓主要工作的方法。
public void createLib()
{
File fl = new File("/mnt/sdcard/imgs");
File[] rawLib = fl.listFiles();
TextView text = (TextView) findViewById(R.id.txt1);
ArrayList<Block> myList = new ArrayList<Block>();
try{
for (int i = 0; i < rawLib.length; i++)
{
FileInputStream fis = new FileInputStream(rawLib[i]);
Bitmap bmp = BitmapFactory.decodeStream(fis);
Block tmpBlock = new Block();
tmpBlock.bmp = bmp;
tmpBlock.mozColor = findMidColor(bmp);
myList.add(tmpBlock);
}
}
catch(Exception exc)
{
exc.printStackTrace();
}
try
{
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");
myDir.mkdirs();
File file = new File (myDir, "library.lib");
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream save = new ObjectOutputStream(fos);
save.writeObject(myList);
save.close();
}
catch (Exception exc)
{
exc.printStackTrace();
}
這裏是我與
class Block
{
Bitmap bmp;
int mozColor;
}
findMidColor()是我的方法和它的工作非常細工作類,所以沒有問題這一點。
當我從仿真器外部存儲器中提取創建的文件時,我看到該文件的大小約爲2.5千字節,但帶圖像的原始文件夾大約爲2-3兆字節。 Conslusion是程序只保存指向該bmp的指針。有什麼辦法可以創建包含圖像和整數的對象的副本文件,並在另一個應用程序(如ArrayList或任何其他數組)中重用該文件?