在SQLite DB上使用路径并使用它来获取图像

时间:2016-05-13 14:22:32

标签: java android sql

我创建了一个SQLITE数据库,以便在Android应用中使用它们的值:

mydatabase = openOrCreateDatabase("MINERALG", MODE_PRIVATE, null);
    mydatabase.execSQL("DROP TABLE IF EXISTS MINERALS");
    mydatabase.execSQL("CREATE TABLE IF NOT EXISTS MINERALS(Name TEXT, Type TEXT, Subtype TEXT, Formula TEXT, Path TEXT);");
    mydatabase.execSQL("INSERT INTO MINERALS VALUES('calcite','Non Silicate','Carbonates','CaCO3','app/src/main/res/drawable/calcite.jpg');");

使用intent.putExtra(“path”,[路径的字符串])和intent.getStringExtra(“path”),我已经将路径作为字符串传递,我在另一个活动中使用它。

问题是我找不到在第二个活动中显示图像的方法。我在项目的drawable文件夹中有文件calcite.jpg。我试试:

imgM = (ImageView)findViewById(R.id.imageView);
String imgMine = intent.getStringExtra("path");
Uri uri = Uri.fromFile(new File(imgMine);
imgM.setImageURI(uri);

它不会抛出错误信息,但它不会像我尝试那样显示图像。

1 个答案:

答案 0 :(得分:0)

您无法以这种方式访问​​res目录中的文件... 更好地移动资产目录中的图像,将路径存储在数据库中并通过以下方式加载它们:

String imgMine = intent.getStringExtra("path");
Uri uri = Uri.parse("file:///android_asset/" + imgMine);