Я имею дело с обнаружением столкновения с некоторыми анимированными видами, и я оживляю некоторые представления альфа-изображений. Что происходит, так это то, что обнаружение столкновения срабатывает, даже когда второй объект находится на прозрачной части ImageView, когда он, по-видимому, не касается, но контейнер ImageView представляет собой прямоугольное поле, которое превышает границы изображения.Как сделать вид Android отличным от прямоугольника
Как я могу определить, когда он касается нарисованной части изображения или делает контейнер треугольником?
Вот как Im обнаружения столкновения между двумя точками зрения:
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);
}
Зачем вам такое обнаружение столкновения? Если речь идет о логике игры или аналогичной, есть и другие, более подходящие способы сделать это, например, как OpenGL или игровые среды. – marktani
@mcwise Да, это базовая игра, но единственное ограничение - не иметь никаких фреймворков, чтобы сделать ее максимально легкой. Знаете ли вы какую-либо стороннюю библиотеку, которая может помочь мне в этом? –