在Textview中显示位图大小

时间:2011-07-27 07:01:30

标签: android bitmap size textview

我有这个问题。我使用decodeByteArray解码和解密数据作为图像,然后我试图获得该图像的实际大小(以字节为单位,而不是宽度和高度)并在textview中显示。

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.Any建议中没有显示大小?

4 个答案:

答案 0 :(得分:1)

TextView.setText(int resId)不应该像这样使用。 i应该是R.string.my_string_here等资源ID。

你真正想要的是

txt.setText(String.valueOf(i));

答案 1 :(得分:1)

请尝试相反并告诉我结果

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

答案 2 :(得分:0)

试试这个

  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;

答案 3 :(得分:0)

在这一行:

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

你应该使用getWidth()而不是GetRowBytes(),因为getRowBytes()返回位图像素中行之间的字节数,getWidth()返回图像的宽度。