0

我的测试 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>

如果我按原样运行代码,我会得到......一个空白屏幕。如何让位图显示?

非常感谢。

4

2 回答 2

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唯一的。所以这就是为什么您可以在通过 canvas 编辑后直接设置位图的原因

于 2012-09-10T03:07:16.400 回答
0

我将此添加到我的 acitity_main.xml(它是 LinearLayout):

<ImageView
android:id="@+id/imageView1"
android:layout_width="200px"
android:layout_height="200px"
android:layout_marginLeft="2dp"/> 

并将此代码添加到同一个 xml 的活动的 OnCreate 方法中:

Bitmap bitmap = BitmapFactory.decodeFile(fileAndPath); 
mImageView = (ImageView) findViewById(R.id.imageView1);     
mImageView.setImageBitmap(bitmap);

位图图像显示并保留在屏幕上。感谢上面的海报

于 2013-06-18T08:48:28.577 回答