【问题标题】:Select Content inside ImageView - Android在 ImageView 中选择内容 - Android
【发布时间】:2012-07-03 12:51:37
【问题描述】:

我有一个包含ImageViewActivity,我想允许用户通过触摸(或鼠标点击)功能选择部分内容。

我想写一个程序来实现两件事:

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

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

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

你能帮我理解怎么做吗?

我特别想了解以下内容:

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

感谢任何形式的帮助!

【问题讨论】:

  • -1 否决票我知道这很旧,但我需要做基本相同的事情,我有带有类似蛋的对象的 ImageView,我只想在用户单击包含的维度时调用一个方法对象,而不是整个 ImageVIew。我在这里看到了答案,但仍然不知道如何区分用户是点击了 ImageView 内我想要的对象还是点击了 ImageVIew 中的空白区域

标签: java android android-imageview


【解决方案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
}

【讨论】:

  • 感谢您的及时回答,但您能帮我更好地理解吗?我是新手...
  • 我明白了!只是我遇到的另一个技术问题:捕获触摸事件时保存的坐标将相对于屏幕或图像中的像素?因为后者是我想记住(像素的)!如果没有,你有什么建议可以解决这个问题吗?
  • 它将是相对于视图而不是图像的像素。我建议尝试通过查看应用了多少滚动或画布中使用了哪些图像偏移等来计算图像中的像素。祝你好运
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
相关资源
最近更新 更多