0

我正在处理学生详细信息申请。我将所有学生的详细信息存储在 sqlite 数据库中,并将我的 sqlite 文件保存在 assets 文件夹中。我还需要显示学生照片。因此,为此我在 db 中保留了一个列并存储了学生的图像名称。现在我在列表视图中显示学生姓名。单击学生姓名时,必须显示该特定学生的所有详细信息以及照片。如何显示特定的学生照片?我将学生照片保存在可绘制文件夹中。

我的代码:

学生.xml

<ImageView 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:id="@+id/yes" 
android:src="@drawable/photo"/> 

学生.java

Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.photo); 

ImageView Image1 = (ImageView) findViewById(R.id.yes); 

Image1.setImageBitmap(image ); 

请帮我解决这个问题....在此先感谢

4

6 回答 6

1

您应该将学生照片 ID(可绘制 ID)存储在 DB 中。

当用户单击列表视图上的学生姓名时,从数据库中获取该学生照片可绘制 ID。

或者

将每个学生的 Photo drawable id 存储在 Listview li 中,当 Li 单击时获取该 ID。

于 2012-05-04T06:27:21.730 回答
0

从 sqlite 获取学生图像名称,然后这样做

其中 StudentImageName 是字符串

int resID = getResources().getIdentifier("Your Package Name:drawable/" + StudentImageName, null, null); 
ImageView Image1 = (ImageView) findViewById(R.id.yes); 
Image1.setImageResource(resID); 

并在设置为 imageview 之前检查图像是否存在于可绘制对象中

要么你也可以试试

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)
于 2012-05-04T06:45:31.963 回答
0

据我了解,您在 sqlite 文件中拥有所有学生详细信息,在可绘制文件夹中拥有学生姓名,那么您可以执行以下操作 1. 为学生 2 提供唯一 ID。并为图像名称引用相同的 ID

然后从 Sqlite 文件中访问学生详细信息,然后显示相应的图像。您可以制作一系列可绘制资源以方便参考。

于 2012-05-04T06:32:26.827 回答
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 作为字段类型)然后,每当您想再次显示图像时,从数据库中检索字节数组,然后将其转换为位图,以便您可以在 ImageView 中显示它

位图位图 = BitmapFactory.decodeByteArray(byteArray , 0, byteArray.length);

您可以查看此链接以获取有关“如何在 Android 中将图像数据插入到 sqlite 数据库以及如何将其检索回来”的更多信息 http://www.tutorialforandroid.com/2009/10/how-to-insert-image-data -to-sqlite.html

于 2012-05-04T07:11:23.417 回答
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); 
于 2012-05-04T06:25:27.630 回答
0

我将学生照片保存在可绘制文件夹中。

将 Background Drawable 设置为您的 Imageview。

 ImageView im =(ImageView)findViewById(R.id.imageview);
  im.setBackgroundDrawable(R.drawable.photo);
于 2012-05-04T06:27:37.790 回答