我有一个包含 ImageView
的 Activity
,我希望允许用户通过触摸(或鼠标单击)功能来选择其部分内容。
我想编写一个能够实现两件事的程序:
- 在图像的选定部分上绘制突出显示的窗口
- 返回一个包含所选(突出显示)像素坐标的对象。
为了更好地理解,您可以查看我创建的小模型:
用户应该触摸屏幕上图像的某些部分,并且该部分应该突出显示。当按下后退按钮时,我想通过 Java 获取突出显示的像素的坐标。
你能帮我了解该怎么做吗?
我特别想了解以下内容:
- 我应该访问图像的像素级信息吗?
- 需要哪些类来实现此功能?
- 关于伪代码的一些想法?
感谢您的任何帮助!
最佳答案
我将子类化ImageView
,然后您可以通过重写onTouchEvent(...)
来捕获触摸事件
当您到达 onDraw(...)
方法时,您可以正常调用 super 来绘制图像,然后添加您自己的代码以在顶部绘制突出显示。
编辑
好吧,您可以扩展它并编写自己的类,而不是使用ImageView
,该类所要做的就是重写onTouchEvent(...)
,这样您就知道什么时候 View 正在被触摸,并且可以保存触摸事件在屏幕上的位置。接下来编辑绘图方法:
@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
}
关于java - 选择 ImageView 中的内容 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11311337/