1

我想ImageView使用 R.id 而不是 R.drawable 将图像保存到数据库中,因为图像可以更改(因为它是相机图片)。l 不能使用图片路径保存,因为图库可能被篡改。

HotOrNot entry = new HotOrNot(this);  
byte[] image4 = HotOrNot.getBytes(BitmapFactory.decodeResource(null, R.id.imageView2));
entry.open();
entry.createEntry(image4);
entry.close();

public static byte[] getBytes(Bitmap bitmap) {
    ByteArrayOutputStream stream = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0, stream);
    return stream.toByteArray();
}
4

2 回答 2

1

您需要了解,这R.drawable.imageID实际图像的。并且R.id.imageView2IDImageView

您的论点是您要存储的图像可以更改。所以在这种情况下,你可以做的是使用yourImageView.getDrawable(),这样你就会得到当前图像,ImageView然后将其转换为Bitmap使用这个

BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
Bitmap bitmap = bitmapDrawable.getBitmap();
byte[] image4 = HotOrNot.getBytes(bitmap); // Your code from here.
于 2013-03-28T08:26:43.037 回答
0

所代表的R.id..是项目预编译资产中资源类型的 id。我认为您无法获得id使用相机拍摄的图像的价值。

另请注意,类型R.id..是 int。

我知道以上不是答案。如果您想使用相机拍摄图像并将其保存在数据库中,请在 SO 中检查此问题。希望能帮助到你。

于 2013-03-28T08:18:25.347 回答