我正在研究数据库项目。实际上包含闪存卡结构。所以对我来说,我想在设备上安装.apk文件时在sdcard中加载一些示例图像。
我试图把它放在drawable上,但它不允许我在数据库中使用这些图像路径,同时用于通过数据库表在应用程序中显示...
答案 0 :(得分:0)
亲爱的朋友,你似乎误解了Android的运作方式..
在你提出任何其他奇怪的问题之前,请仔细阅读this,请理解你想要实现的目标是不可能的。
除非您的应用程序安装在设备上,否则您无法下载任何内容, 应用程序启动后,您可以编写一个服务,在用户与您的应用程序交互时在后台下载您的图像。
答案 1 :(得分:0)
我不确定我完全理解您的需求,但您可以使用项目中的/assets
目录,尝试查看此this。
答案 2 :(得分:0)
Cursor cursor;
InputStream IS;
private static int k=0;
private String []dirname ={"Flowers","Animals"};
private String []country={"Australia","Brazil","Iran","Japan","India"};
private String []captial={"Canberra","Brasilia","Tehran","Tokyo","New Delhi"};
private String []names={"Lotus","Mogra","Morning glory","Rose","Aster","Dog","Lion","Squirrel","Tiger","Wolf"};
private File sdcard=Environment.getExternalStorageDirectory();
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sample_category);
Toast.makeText(getApplicationContext(), "Application Preparing For First Time", 5000).show();
//这里的variableDeclaration是java类,我将数据库对象作为整个应用程序的静态放置。
VariableDeclaration.db.execSQL("CREATE TABLE IF NOT EXISTS Animals " +
"(id INTEGER PRIMARY KEY AUTOINCREMENT,path varchar,caption varchar,type int(1));");
VariableDeclaration.db.execSQL("CREATE TABLE IF NOT EXISTS Flowers " +
"(id INTEGER PRIMARY KEY AUTOINCREMENT,path varchar,caption varchar,type int(1));");
VariableDeclaration.db.execSQL("CREATE TABLE IF NOT EXISTS Capitals " +
"(id INTEGER PRIMARY KEY AUTOINCREMENT,path varchar,caption varchar,type int(1));");
AssetManager asset_items=this.getAssets();
//这是资产管理员,负责将资产目录中的图像存储到此容器中。
String []items=new String[10];
try{
items=asset_items.list("");
for(int i=0;i<dirname.length;i++){
// FlashFlicker是我的应用程序目录名,它是在第一次加载.apk时创建的。
File file=new File(sdcard.getAbsolutePath()+File.separator+"FlashFlicker"+File.separator+dirname[i]);
file.mkdir();
//在这个for循环中,我在每个目录中创建了一些目录并将样本图像复制到其中。
for(int j=0;j<5;j++){
IS=asset_items.open(items[k]);
File file1=new File(sdcard.getAbsolutePath()+File.separator+"FlashFlicker"+File.separator+dirname[i]+File.separator+items[k]);
VariableDeclaration.db.execSQL("INSERT INTO "+dirname[i]+" VALUES (null,'"+file1.getAbsolutePath().toString()+"','"+names[k].toString()+"',"+i+");");
FileOutputStream out=new FileOutputStream(file1);
byte[] buff=new byte[1024];
while(IS.read(buff)!=-1){
out.write(buff);
}
out.close();
k++;
}
}
}catch(Exception e){}
int j=2;
for(int i=0;i<country.length;i++){
VariableDeclaration.db.execSQL("INSERT INTO Capitals VALUES (null,'"+country[i].toString()+"','"+captial[i].toString()+"',"+j+");");
}