如何在Android中显示位图图像
我正在制作一个应用程序,在这个应用程序中,我从安卓系统中的实时IP摄像头获取Mjpg图像 问题是,当我以如何在Android中显示位图图像,android,image,decoding,Android,Image,Decoding,我正在制作一个应用程序,在这个应用程序中,我从安卓系统中的实时IP摄像头获取Mjpg图像 问题是,当我以ByteArray的形式获取图像时。如何显示图像 我正在使用以下代码显示图像: ImageView imageView = (ImageView) findViewById(R.id.imageView1); Bitmap bmp = BitmapFactory.decodeByteArray(buffer, start, a); imageView.setImageBitmap(bmp);
ByteArray
的形式获取图像时。如何显示图像
我正在使用以下代码显示图像:
ImageView imageView = (ImageView) findViewById(R.id.imageView1);
Bitmap bmp = BitmapFactory.decodeByteArray(buffer, start, a);
imageView.setImageBitmap(bmp);
但我有个例外
android.view.ViewRoot CallFromWrongThreadException
请解释如何在android布局上显示bytearray。当您执行与视图相关的工作时,请始终从GUI线程(即创建视图层次结构的线程)执行此操作
因此,使用
处理程序来实现这一点 您应该使用runOnUiThread()从其他线程更新视图。异常callfromErrorThreadException
表示您试图从一个非UI线程且不允许的线程更新UI
因此,您的问题不是创建图像的代码错误,而是您在错误的位置执行该操作。
例如,如果您在异步任务
中在后台获取图像,则需要在postExecute()
中设置图像位图()
,而不是在doInBackground()
中
如果看不到更多的代码,我们将无法为您提供更多帮助。查看mImg=findviewbyd(R.id.image\u来自\u库);
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);
((ImageView)mImg.setImageBitmap(位图);
这对我有用