繁体   English   中英

如何在 Android 中显示位图图像

[英]How to display Bitmap Image in Android

我正在制作一个应用程序,在该应用程序中我从 Android 中的实时 IP 摄像机获取 Mjpg 图像。

问题是,因为当我以ByteArray的形式获取图像时。 如何显示Image

我正在使用以下代码来显示图像:

ImageView imageView = (ImageView) findViewById(R.id.imageView1);
Bitmap bmp = BitmapFactory.decodeByteArray(buffer, start, a);
imageView.setImageBitmap(bmp);

但我有一个例外

android.view.ViewRoot CallFromWrongThreadException

请解释如何在android布局上显示字节数组。

ImageView tv1;
tv1= (ImageView) findViewById(R.id.image);
InputStream si1 = asset.open("image/" + cat_arr1[i] + ".png");
Bitmap bitmap1 = BitmapFactory.decodeStream(si1);
tv1.setImageBitmap(bitmap1);

您应该使用 runOnUiThread() 从其他线程更新视图。

当你在做一些与视图相关的工作时,总是从 GUI 线程中进行,即。 the thread that created the view hierarchy

所以使用Handlers来实现这一点。

异常CallFromWrongThreadException表示您尝试从不是 UI 线程且不允许的线程更新 UI。

所以你的问题不是你创建图像的代码是错误的,而是你在错误的地方做的。 如果你是如取在一个背景图像AsyncTask ,您需要setImageBitMap()postExecute()而不是在doInBackground()

没有看到更多代码,我们无法为您提供更多帮助。

View mImg = findViewById(R.id.image_from_gallery);
((ImageView) mImg).setImageBitmap(bitmap);

这对我有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM