在android中显示图像?

时间:2012-05-04 06:21:08

标签: android

我正在研究学生详细信息申请。我将所有学生的详细信息存储在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 ); 

请帮我解决这个问题....提前致谢

6 个答案:

答案 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