我有一个带有默认背景的LinearLayout,但在某些情况下我需要从SQL数据库中的Blob对象的byte []数据设置自定义背景。 我已经制作了自定义适配器,但我不知道图像是如何分开的。
if (Ad.getAd_image().length > 0) {
//Ad.getAd_image() is a byte[] object
ad_image_layout.setBackground(???);
}
答案 0 :(得分:1)
我们可以通过2种方式实现, 1.如果你有直接字节[],你可以使用
byte[] b = //your data;
Drawable image = new BitmapDrawable(getResources(), BitmapFactory.decodeByteArray(b, 0, b.length));
如果您有输入流,可以使用此
InputStream is = //your input stream;
Bitmap bitmap = BitmapFactory.decodeStream(is);
答案 1 :(得分:1)
这样做
Bitmap bitmap=BitmapFactory.decodeByteArray(Ad.getAd_image(),0,Ad.getAd_image().length);
Drawable d = new BitmapDrawable(getResources(), bitmap);
LinearLayout l;
l=(LinearLayout)findViewById(R.id.layout_id)
l.setBackground(d);
答案 2 :(得分:0)
查看BitmapFactory
的decodeByteArray
方法。字节数组必须位于supported image formats之一。