0

カメラ インテントを作成しようとしています。コードの一部を以下に示します。

public void onPictureTaken(byte[] data, Camera camera) {
    String dat = new String(data);          
    byte[] datas = dat.getBytes();                  
    preview.setVisibility(View.GONE);
    ImageView iv2 = (ImageView)findViewById(R.id.iv1);
    Bitmap bMap = BitmapFactory.decodeByteArray(datas, 0, datas.length);
    iv2.setImageBitmap(bMap);           
}

これはimageview空白のままですが、与えると

Bitmap bMap = BitmapFactory.decodeByteArray(data, 0, data.length); 

imageview適切にロードされています。バイト配列から文字列への変換に間違いがありますか??

4

2 に答える 2

0

byte[] を String に変換する必要さえありません。そのままお使いください。

public void onPictureTaken(byte[] data, Camera camera) {
    preview.setVisibility(View.GONE);
    ImageView iv2 = (ImageView)findViewById(R.id.iv1);

    // ensure ImageView is visible.
    iv2.setVisibility( View.VISIBLE);

    Bitmap bMap = BitmapFactory.decodeByteArray(data, 0, data.length);
    iv2.setImageBitmap(bMap);           
}

上記の変更されたコードを使用するだけです。

于 2014-01-24T09:19:58.253 に答える
0

なぜこの2行が必要なのですか?

String dat = new String(data);          
byte[] datas = dat.getBytes(); 

decodeByteArray でデータを直接使用する

于 2013-04-15T05:54:33.297 に答える