我正在研究学生详细信息申请。我将所有学生的详细信息存储在sqlite数据库中,并将我的sqlite文件保存在assets文件夹中。我还需要显示学生照片。因此,我在db中保留了一个列,并存储了学生的图像名称。现在我在列表视图中显示学生姓名。单击学生姓名时,必须显示该特定学生的所有详细信息以及照片。如何显示特定的学生照片?我将学生照片保存在可绘制的文件夹中。
我的代码:
student.xml
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/yes"
android:src="@drawable/photo"/>
Student.java
Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.photo);
ImageView Image1 = (ImageView) findViewById(R.id.yes);
Image1.setImageBitmap(image );
请帮我解决这个问题....提前致谢
答案 0 :(得分:1)
您应该将学生照片ID(可绘制ID)存储在数据库中。
当用户点击列表视图上的学生姓名时,从DB获取该学生照片可绘制ID。
OR
将每个学生的照片可绘制ID存储在Listview li中,当Li点击时,Invisible获取该ID。
答案 1 :(得分:0)
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/yes"
android:src="@drawable/photo"/>
Drawable d = getResources().getDrawable(R.drawable.photo);
Bitmap bitmap = ((BitmapDrawable) d).getBitmap();
ImageView Image1 = (ImageView) findViewById(R.id.yes);
Image1.setImageBitmap(bitmap);
答案 2 :(得分:0)
我将学生的照片保存在可绘制的文件夹中。
将背景Drawable设置为您的Imageview。
ImageView im =(ImageView)findViewById(R.id.imageview);
im.setBackgroundDrawable(R.drawable.photo);
答案 3 :(得分:0)
据我了解你在sqlite文件中有所有学生详细信息,学生名在drawable文件夹中,那么你可以做以下 1.为学生提供一个独特的身份证明 2.并为图像名称引用相同的ID
然后从Sqlite文件中访问学生详细信息,然后显示相应的图像。并且您可以创建一系列可绘制资源以便于参考。
答案 4 :(得分:0)
从sqlite中获取学生图像名称,之后就这样做
其中StudentImageName是String
int resID = getResources().getIdentifier("Your Package Name:drawable/" + StudentImageName, null, null);
ImageView Image1 = (ImageView) findViewById(R.id.yes);
Image1.setImageResource(resID);
并且在设置为imageview
之前检查图像是否存在于drawable中要么你也可以尝试
int resID = getResources().getIdentifier("Your Package Name:drawable/" + StudentImageName, null, null);
Bitmap image = BitmapFactory.decodeResource(getResources(),resID);
ImageView Image1 = (ImageView) findViewById(R.id.yes);
Image1.setImageBitmap(image)
答案 5 :(得分:0)
在数据库中插入学生数据时包含照片。 您可以通过将位图转换为字节数组来完成此操作。
Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.photo);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
(您的图片列应接受BLOB作为字段类型) 然后,每当您想再次显示图像时,从数据库中检索字节数组,然后将其转换为Bitmap,以便在ImageView中显示它
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray,0,byteArray.length);
您可以查看此链接以获取更多信息 &#39;如何将图像数据插入Android中的sqlite数据库以及如何将其检索回来#39; http://www.tutorialforandroid.com/2009/10/how-to-insert-image-data-to-sqlite.html