在ImageView - Android中选择内容

时间:2012-07-03 12:51:38

标签: java android android-imageview

我有Activity包含ImageView,我想让用户通过触摸(或鼠标点击)功能选择部分内容。

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

  1. 在图像的选定部分上绘制突出显示的窗口
  2. 返回包含所选(突出显示)像素坐标的对象。
  3. 为了更好地理解你可以查看我创建的小模拟:

    enter image description here

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

    你能帮我理解怎么做吗?

    特别是我想了解以下内容:

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

1 个答案:

答案 0 :(得分: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
}