0

我有一个Activity包含一个ImageView,我想允许用户使用触摸(或鼠标单击)功能选择它的部分内容。

我想编写一个能够实现两件事的程序:

  1. 在图像的选定部分上绘制一个突出显示的窗口
  2. 返回一个包含选定(突出显示)像素坐标的对象。

为了更好地理解,您可以查看我创建的小模型:

在此处输入图像描述

用户应该在图像的某些部分上触摸屏幕,它应该被突出显示。当按下后退按钮时,我想通过 Java 获得突出显示的像素的坐标。

你能帮我理解怎么做吗?

我特别想了解以下内容:

  1. 我应该访问图像的像素级信息吗?
  2. 实现此功能需要哪些类?
  3. 一些伪代码的想法?

感谢您提供任何帮助!

4

1 回答 1

1

我将子类ImageView化,然后您可以通过覆盖来捕获触摸事件onTouchEvent(...)

当您使用该onDraw(...)方法时,您可以调用 super 正常绘制图像,然后添加您自己的代码以在顶部绘制突出显示。

编辑

ImageView好吧,您可以扩展它并编写自己的类,而不是使用它,所有这个类所要做的就是覆盖onTouchEvent(...),以便您知道何时触摸视图并可以保存触摸事件在屏幕上的位置。接下来编辑绘图方法:

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas); // So the image you want is drawn as normal

    myMethodForDrawingAFancyHighlight(Canvas canvas); // add your special effects on top of the image
}
于 2012-07-03T13:12:29.653 回答