我做了一個測驗應用程序,我已經存儲在資產文件夾中的圖像說assets/pictures.I檢索圖像從資產文件夾使用AssetsManager.But後,我添加更多的圖像資產文件夾我發現應用程序不會從資產文件夾中獲取更新的圖像,除非我卸載了以前的應用程序。我還了解到,它不可能更新資產文件夾,除非我卸載舊的應用程序。我正確嗎?我想知道是否有可能將資產文件夾圖像添加到數據庫,並使用數據庫將圖像檢索到應用程序?當我發佈我的應用程序的更新版本時,我的新圖像文件是否會顯示?如果是這樣?解決方案更新資產文件夾
這是我使用RAD從資產文件夾
String[] getImagesFromAssets() {
AssetManager assetManager = getAssets();
String[] img_files = null;
try {
// img_files = getAssets().list("pictures");
img_files = assetManager.list("pictures");
} catch (IOException ex) {
Logger.getLogger(GameActivity.class
.getName()).log(Level.SEVERE, null, ex);
}
return img_files;
}
void loadImage(String name) {
AssetManager assetManager = getAssets();
System.out.println("File name => "+name);
InputStream in = null;
OutputStream out = null;
try {
in = assetManager.open("pictures/"+name); // if files resides inside the "Files" directory itself
out = new FileOutputStream(Environment.getExternalStorageDirectory() +"/" +"pictures/"+ name);
copyFile(in, out);
in.close();
in = null;
out.flush();
out.close();
out = null;
Drawable d=Drawable.createFromPath(Environment.getExternalStorageDirectory() +"/" +"pictures/" + name);
image.setImageDrawable(d);
//Drawable d = Drawable.createFromStream(in, null);
//image.setImageDrawable(d);
} catch(Exception e) {
Log.e("tag", e.getMessage());
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}
你不能在Assets文件夾中插入任何東西,所以如果你想存儲圖片,你應該保存在SDCARD – Luc
創建一個webservice將最適合你的需求。 – Vigbyor
@JackDuong我導出我的文件保存在資產文件夾到SD卡文件夾,並試圖從那裏檢索,但是當我更進一步更多的圖像資產文件夾我沒有在SD卡上找到 –