大家好,我一直在关注本教程:http://coenraets.org/blog/android-samples/androidtutorial/。我得到了我需要的东西,但现在我遇到了问题。 基本上,我需要的是能够为每个员工添加图片。我希望在列表中创建缩略图,并在详细信息页面上显示完整尺寸的照片。 我怎么能这样做?
我尝试在数据库中添加照片标记
String sql = "CREATE TABLE IF NOT EXISTS employee (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"firstName TEXT, " +
"lastName TEXT, " +
"title TEXT, " +
"officePhone TEXT, " +
"cellPhone TEXT, " +
"email TEXT, " +
photo IMAGE," + "managerId INTEGER)";
db.execSQL(sql);
然后我添加了values.put("photo", "@drawable/icon");
。
然后在EmployeeDetails
我添加了这一行:
photo = (ImageView) findViewById(R.id.image);
photo.setTag(cursor.getString(cursor.getColumnIndex("photo")));
我当然导入了ImageView
和protected ImageView photo;
对于我添加的详细信息布局:
<ImageView
android:id="id/image
android:layout_width="wrap_content"
android:layout_heigh=wrap_content
问我是否设法让自己足够清楚。 我试图为员工的详细信息部分写一张照片,我没有尝试制作缩略图,事情就是这样,我做了整件事,它没有出现错误,但是当我运行它时,应用程序崩溃了。
答案 0 :(得分:0)
使用blob存储并从数据库中重新获取图像,this会提供更好的主意:
您还将db中的资源文件夹路径存储为文本,并使用它从sql检索路径: 那你的sql:
String sql = "CREATE TABLE IF NOT EXISTS employee (" +
"_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"firstName TEXT, " +
"lastName TEXT, " +
"title TEXT, " +
"officePhone TEXT, " +
"cellPhone TEXT, " +
"email TEXT, " +
"photo Text," +
"managerId INTEGER)";
db.execSQL(sql);
然后您可以通过以下方式从资产文件夹中获取绘图:
Drawable d = Drawable.createFromStream(getAssets().open("path_from_db"), null);
img.setBackgroundResource(d);
答案 1 :(得分:0)