Показать размер растрового изображения в Textview - PullRequest
0 голосов
/ 27 июля 2011

У меня есть эта проблема. Я использую decodeByteArray для декодирования и дешифрования данных как изображения, и после этого я пытаюсь получить фактический размер (в байтах, а не ширину и высоту) этого изображения и показать его в текстовом виде. 1001 *

Bitmap bitmap = BitmapFactory.decodeByteArray(decryptedData , 0, decryptedData .length);    //decoding bytearrayoutputstream to bitmap
int i = bitmap.getRowBytes() * bitmap.getHeight() ;

TextView txt = (TextView) findViewById(R.id.text);
txt.setText(i);

Код работает без ошибок, но размер не отображается в TextView. Есть предложения?

Ответы [ 4 ]

1 голос
/ 27 июля 2011

Пожалуйста, попробуйте это и скажите мне результат

Bitmap bitmap = BitmapFactory.decodeByteArray(decryptedData , 0, decryptedData .length); 
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
TextView txt = (TextView) findViewById(R.id.text);
txt.setText(String.valueOf(stream.size())); 
1 голос
/ 27 июля 2011

TextView.setText(int resId) не должен использоваться таким образом.i должен быть идентификатором ресурса, таким как R.string.my_string_here.

То, что вы на самом деле хотите, это

txt.setText(String.valueOf(i));
0 голосов
/ 27 июля 2011

В этой строке:

int i = bitmap.getRowBytes() * bitmap.getHeight() ;

Вы должны использовать getWidth (), а не GetRowBytes (), потому что getRowBytes () возвращает количество байтов между строками в пикселях растрового изображения, а getWidth () возвращает ширину изображения.

0 голосов
/ 27 июля 2011

попробуйте

  ByteArrayOutputStream stream = new ByteArrayOutputStream();
  bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
  byte[] byteArray = stream.toByteArray();
  BitmapFactory.Options bounds = new BitmapFactory.Options(); 
  BitmapFactory.decodeByteArray(byteArray , 0, byteArray .length);
  int width = bounds.outWidth;
  int height = bounds.outHeight;
...