我的测试Android应用程序有一个单独的活动,LoadImage,有两种方法:使用OpenCV处理图像的onCreate方法,以及在屏幕上显示图像5秒钟的Display方法。以下是我目前为Display方法所做的:
[convert OpenCV matrix to a bitmap using an OpenCV method]
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(bitmap, 0, 0, null);
try {
synchronized (this) {
wait(5000);
}
} catch (InterruptedException e) {
}
这是单个活动的XML文件(它是一个空白屏幕):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</RelativeLayout>
如果我按原样运行代码,我会得到一个空白屏幕。如何显示位图?
非常感谢。
答案 0 :(得分:1)
试试这个:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"/>
</RelativeLayout>
在你的java代码中执行此操作:
onCreate()
{
ImageView imageView = (ImageView) findViewById(R.id.imageView1);
}
您是否正在将位图发送到画布?
所以在你的方法中这样做,你要绘制位图。
imageView.setImageBitmap(bitmap);
您无法将画布直接设置为imageView1。
因为正如你在现实生活中所知道的那样,画布只是一个画笔。同样在这里画布也只是画笔。所以不要担心它。您编辑的图像现在只存储在bitmap
中。这就是为什么你可以在editng后用画布直接设置位图。
答案 1 :(得分:0)
我将此添加到我的acitity_main.xml(它是LinearLayout):
<ImageView
android:id="@+id/imageView1"
android:layout_width="200px"
android:layout_height="200px"
android:layout_marginLeft="2dp"/>
这个代码用于OnCreate方法,用于该xml的活动:
Bitmap bitmap = BitmapFactory.decodeFile(fileAndPath);
mImageView = (ImageView) findViewById(R.id.imageView1);
mImageView.setImageBitmap(bitmap);
位图图像显示并保留在屏幕上。感谢上面的海报