繁体   English   中英

如何使Android视图的形状不是矩形

[英]How to make Android views shape other than rectangular

我正在用一些动画视图处理碰撞检测,并在动画一些alpha图像视图。 发生的情况是,即使第二个对象显然不在触摸中,但ImageView容器是一个超出图像范围的矩形框,即使第二个对象位于ImageView的透明部分,也会触发碰撞检测。

我如何检测它何时接触到图像的绘制部分或使容器成为三角形?

这是我检测两个视图之间冲突的方法:

public boolean checkCollision(View v1, View v2) {
    if (v1 == null || v2 == null) {
        log.e("Views must not be null");
        throw new IllegalArgumentException("Views mut be not null");
    }
    Rect R1 = new Rect();
    v1.getHitRect(R1);
    Rect R2 = new Rect();
    v2.getHitRect(R2);
    return Rect.intersects(R1, R2);
}

我建议做的是对边界框进行初步检查,以查看是否需要执行更准确的检查。 如果只有少数几个对象碰撞,则此步骤是可选的,但是如果它们很多,它将节省很多性能。 如果确实需要进行进一步检查,请在图像周围确定有实心纹理的点上进行标记,然后检查是否与这些点发生碰撞。 如果您愿意,我可以尝试为您提供一些代码,但请在此处查看该问题,以深入解释问题。 https://gamedev.stackexchange.com/questions/30866/collision-detection-with-non-rectangular-images

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM