У меня есть пользовательский вид, где я использую преобразования. До сих пор такая хорошая работа, как setRotationY()
, setScaleX()
, setTranslationY()
или даже getMatrix()
работали, как и ожидалось, Im умеет манипулировать моим представлением, и он отображается нормально.
Там, где я попал в стену, после этого несколько стран ведут себя странно. Например, функция типа getHitRect()
возвращает совершенно странные значения! Это не помогает моим событиям касания.
Я попытался перегрузить функцию, но она все еще далека от работы, особенно при использовании вращения или масштабирования (Перевод выполняется нормально). Я думаю, что это как-то связано с тем, что матрица выражается в дочерней координате, так как я могу ее получить в координатах родителей?
@Override
public void getHitRect(Rect outRect){
RectF rect = new RectF();
rect.top = (float) this.getTop();
rect.bottom = (float) this.getBottom();
rect.left = (float) this.getLeft();
rect.right = (float) this.getRight();
this.getMatrix().mapRect(rect);
rect.round(outRect);
}
Можно ли получить прямое значение из некоторой функции? Как и новая высота, ширина, верх или низ.