【发布时间】:2015-12-03 09:47:22
【问题描述】:
而我真正想要的是通过对象的 坐标(X,Y) 和 OnTouchListener 显示位图的一部分(橙色 square,圆点位于中心)。
所以问题是我想绘制图像的一部分,就像它在图像上显示的那样(红色方块“我想要显示的区域”)。
所以在这种情况下,例外结果是(位图的一部分):
目前我正在这样做:
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE:
Bitmap mBitmap = Bitmap.createBitmap(sourceBitmap,view.getX() - view.getWidth(),view.getY()-view.getHeight(),250,250);
//other stuff to fill this portion of bitmap
break;
}
return true;
}
}
这是不正确的。
我怎样才能做到这一点? 尝试了很多公式,但没有运气。有什么建议么?
PS 据我了解,event.getX()/event.getY() 正在获取相对坐标(我不清楚从对象获得的确切坐标带有触摸监听器的图像视图(橙色正方形,中心有点),我的意思是它得到这个对象的 center 或 Top.Left 角(X,Y))?
【问题讨论】:
-
任何代码示例?我认为 getY() 在这种情况下被倒置 IIRC 这可能会给您带来问题?
-
@Hughzi 好的,现在添加代码 sn-ps。感谢您的回复!
-
如果你登录你的
event.getX()/event.getY(),你会得到什么? -
@DanChaltiel 我正在获取对象的坐标。还是你的意思?
-
@VetaLio 我认为您需要执行 getWidth - getX 就好像您的宽度为 100 并且您当前在 -50 处触摸 50?
标签: android bitmap coordinates ontouchlistener magnify