Android OntouchListener,绘制位图时检查图像相交

标签 android canvas drawable

好的,伙计们,好吧...,好像我在上一个问题中错了...

我正在开发一个单词搜索游戏,我已经将我的应用程序实现的“视点”从 GridView 更改为在 android 中使用 Canvas 绘制位图。

是这样的: Canvas 内有一个可绘制对象,还有另一个可绘制对象,将在用户调用 OntouchListener 事件时绘制...

我想做一个逻辑操作,如果第二个绘制对象与第一个可绘制对象具有相同的轴或坐标,它会做一些事情......

代码如下:

public class DrawView extends View implements OnTouchListener{
private static final String TAG = "DrawView";

List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();
Bitmap kangoo = BitmapFactory.decodeResource(getResources(),R.drawable.icon);

public DrawView(Context context, AttributeSet attrs) {
    super(context,attrs);
    setFocusable(true);
    setFocusableInTouchMode(true);

    this.setOnTouchListener(this);
    paint.setColor(Color.WHITE);
    paint.setAntiAlias(true);
}

@Override
public void onDraw(Canvas canvas) {
    Bitmap krazy = BitmapFactory.decodeResource(getResources(),R.drawable.schema);
    canvas.drawBitmap(krazy, 130, 130, null);
    for (Point point : points) {
        canvas.drawBitmap(kangoo, point.x, point.y, null);
        //canvas.drawCircle(point.x, point.y, 5, paint);
        // Log.d(TAG, "Painting: "+point);
    }
}

@Override
public boolean onTouch(View view, MotionEvent event) {
     // if(event.getAction() != MotionEvent.ACTION_DOWN)
    // return super.onTouchEvent(event);
    Point point = new Point();
    point.x = event.getX();
    point.y = event.getY();
    points.add(point);
    invalidate();
    Log.d(TAG, "point: " + point);
    return true;
}
    }

    class Point {
    float x, y;

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

看...,静态绘制对象是KRAZY,动态绘制时触摸屏幕是KANGOO

我想知道这两个对象是否通过 x 或 y 接触....

谢谢你

最佳答案

实际上这个解决方案是用来辅助我的单词搜索游戏项目...

我只需要做的主要事情是测量由可绘制字符串 block 表示的占用单词... 然后将其与方形选择框所形成的方形区域进行比较,只要用户触摸屏幕,方形选择框就会将自己绘制在字符 block 内...

然后当方 block 区域或方 block 选择的占用区域被整个字符 block 占用时调用.... 我的意思是方形选择框在字符 block 内

在这种情况下如果一个单词从point.x=0.0 , y=0.0 开始组成4个字符 block ,每个 block 占用32pix H和W那么正方形选择框占用的位置必须小于4*32(W ) 和 1*32(H)....

关于Android OntouchListener,绘制位图时检查图像相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5560985/

相关文章:

javascript - 如何从 'SetInterval'切换到 'request animation frame'

html - 在 HTML5 Canvas 上模仿 photoshop/painter 平滑绘制?

javascript - KineticJS:两个可拖动形状之间的曲线

android - 在容器 View 的边界外绘制图像

java - 如何在 Android 上禁用 ListView 的滚动?

java - 使用不同计算机上的模拟器将客户端连接到服务器

android减少两个垂直TextViews之间的空间

android - 如何以编程方式删除图像的背景,使其在 android 中透明

android - 绘图引用

android-studio - Android Studio:不支持文字下划线错误