2013-04-15 4 views
0

Я пытаюсь создать намерение камеры, а нижняя часть кода приведена ниже.Bytearray to string android

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 правильно загружена. Я делаю ошибку в массиве байтов для преобразования строк?

ответ

0

Зачем вам эти две линии?

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

использовать данные непосредственно в decodeByteArray

+0

Я хочу передать это в намерении и получить его в результатах onactivity для деятельности камеры, преобразование в строку необходимо для передачи и повторного преобразования в массив байтов для получения, чтобы проверить его, я делаю это в том же приложении – bharath

+0

http://stackoverflow.com/questions/1536054/how-to-convert-byte-array-to-string-and-vice-versa .. посмотрите на этот вопрос .. он решит ваш querry, я думаю – stinepike

+1

Возьмите посмотрите на это .... [http://stackoverflow.com/questions/7947871/convert-a-string-to-a-byte-array-and-then-back-to-the-original-string] – AndiM

0

Вы даже не нужно преобразовать байт [] в строку. Просто используйте его как есть.

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);   
} 

Просто используйте вышеуказанный модифицированный код.