相关疑难解决方法(0)

如何将图像视图的坐标转换为位图的坐标?

在我的应用程序中,我需要让用户检查一些照片的眼睛.在OnTouchListener.onTouch(...)中,我得到了ImageView的坐标.

如何将此坐标转换为触摸位图的点?

android image

20
推荐指数
2
解决办法
3万
查看次数

ImageView坐标和位图像素之间的对应关系 - Android

在我的应用程序中,我希望用户能够选择一个包含在其中的图像的某些内容ImageView.

要选择内容,我将该ImageView类子类化,使其实现,OnTouchListener以便在其上绘制一个由用户决定的带边框的矩形.

下面是绘图结果的示例(要了解它的工作原理,您可以将其视为在桌面上单击鼠标并拖动鼠标时):

enter image description here

现在我需要确定哪些像素的的Bitmap图像对应于所选择的部分.很容易确定哪些是ImageView属于矩形的点,但我不知道如何获得对应的像素,因为它ImageView具有与原始图像不同的纵横比.

我遵循这里特别描述的方法,但也在这里,但我并不完全满意,因为在我看来,对应关系是在像素和点之间的1对1 ImageView,并没有给我原始图像上的所有对应像素到选定的区域.

hoveredRect在其ImageView内部的点上调用矩形是:

class Point {
    float x, y;
    @Override
    public String toString() {
        return x + ", " + y;
    }
}

Vector<Point> pointsInRect = new Vector<Point>();

for( int x = hoveredRect.left; x <= hoveredRect.right; x++ ){
    for( int y = hoveredRect.top; y <= hoveredRect.bottom; y++ ){

        Point pointInRect = new Point();
        pointInRect.x …
Run Code Online (Sandbox Code Playgroud)

java android android-image android-imageview

12
推荐指数
1
解决办法
6941
查看次数

从矩阵中获取坐标和宽度/高度

我正在尝试为Android平台制作媒体播放器,我想要添加的功能之一是能够拖动和捏缩放图片.

我遇到的问题是我从"Hello,Android"编辑中复制了这段代码.3:

@Override
public boolean onTouch(View v, MotionEvent event) {
ImageView view = (ImageView) v;
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
    savedMatrix.set(matrix);
    start.set(event.getX(), event.getY());
    mode = DRAG;
    break;
case MotionEvent.ACTION_POINTER_DOWN:
    oldDist = spacing(event);
    if (oldDist > 10f) {
        savedMatrix.set(matrix);
        midPoint(mid, event);
        mode = ZOOM;
    }
    break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
    mode = NONE;
    break;
case MotionEvent.ACTION_MOVE:
    if (mode == DRAG) {
        matrix.set(savedMatrix);
        matrix.postTranslate(event.getX() - start.x, event.getY() - start.y);
    }
    else if (mode == ZOOM) {
        float newDist = spacing(event); …
Run Code Online (Sandbox Code Playgroud)

android

11
推荐指数
2
解决办法
2万
查看次数

将touchListener添加到路径对象

我有一个画布,我设置了一条路径

Path path = new Path();
path.moveTo(1, 1);
path.lineTo(90, 1);
path.lineTo(90, 60);
path.lineTo(1, 60);

canvas.drawPath(path,p);
Run Code Online (Sandbox Code Playgroud)

现在我想向这个路径对象实现一个触摸侦听器.

我在自定义ImageView上实现了缩放选项,并在此自定义ImageView的onDraw方法的画布上绘制了这些线条.所以我不能通过检查用户触摸的坐标来做到这一点.

我知道路径对象不是View Class的子节点,因此我无法在其中实现touchListner.但我真正需要的是类似的东西

path.setOnTouchListener(myTouchListner);
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何实现它?任何帮助表示赞赏.

android ontouchlistener android-canvas

9
推荐指数
1
解决办法
313
查看次数