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

为什么需要这两行?

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

直接在 decodeByteArray 中使用数据

于 2013-04-15T05:54:33.297 回答
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 回答