1

ImageView画像が変更される可能性があるため(カメラの画像であるため)、R.drawableではなくR.idを使用してデータベースに画像を保存したい。ギャラリーが改ざんされている可能性があるため、画像へのパスを使用して保存することはできません。

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.imageあることを理解する必要があります。IDそしてのR.id.imageView2です。IDImageView

あなたの主張は、保存したい画像が変わる可能性があるということです。その場合、できることは を使用する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 に答える