2012-10-12 64 views
0

我需要在源代碼中傳輸多個文件。可怕的是,我知道,但我沒有其他選擇。到目前爲止,我只存儲圖像,所以我這樣做:在源代碼中傳輸文件的正確方式

對圖像進行編碼:

Bitmap bm = BitmapFactory.decodeFile(imagePath); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
bm.compress(CompressFormat.PNG, 100, baos); 
byte[] b = baos.toByteArray(); 
String encodedimage = Base64.encodeToString(b, Base64.DEFAULT); 

解碼圖像:

public static Bitmap decodeBitmap(imageString) { 
     return BitmapFactory.decodeStream(new ByteArrayInputStream(Base64.decode(imageString, Base64.DEFAULT))); 
    } 

我使用的base64以便投入新形象該程序更容易,因爲它只是一個簡單的字符串。

現在我試圖擴展功能到任何文件格式,所以我尋求指導,以瞭解是否存在代碼中存儲文件的不良方式。

+0

有問,爲什麼?爲了所有的和平與愛的名義,爲什麼? – Simon

+0

我正在創建一個需要持有一些資產的JAR庫。顯然,如果它們不是Android資源,則無法訪問它們。這沒什麼大不了的,文件非常小。 – JohnEye

+0

好吧,你的意思是從JAR訪問Android資源是不可能的? – Simon

回答

0

對於您應該使用資源文件夾的圖像。它內置於系統中。 對於一般最終,你應該使用仿如顯示在這個計算器問題資產的文件夾和訪問:How to get URI from an asset File?

0

如果你想保留一些數據文件,可以讓他們在資產的文件夾,你可以用AssetManager來獲取文件。

+0

不,我正在創建一個庫,因此將它們放入資源文件夾不是一個選項。 – JohnEye

相關問題