Android: мой imageview повернут, но его область касания нет

#android #rotation #touch #imageview

#Android #вращение #коснитесь #imageview

Вопрос:

У меня есть прямоугольный Imageview, который реагирует на прикосновение (он поворачивается на определенное количество градусов, используя анимацию). К imageview прикреплен ontouchlistener.

Однако после поворота он по-прежнему реагирует на прикосновения только в исходном (до поворота) местоположении. Несмотря на то, что я установил значение fillafter в true.

Моя теория заключается в том, что вращение предназначено только для отображения … есть ли способ обнаружить прикосновение к прямоугольному imageview, повернутому под углом, например, 45 градусов?

Ответ №1:

Когда анимация применяется к представлению в Android, сдвигаются только пиксели представления, в то время как область попадания остается в том же положении.

Чтобы фактически переместить представление, вам нужно будет добавить в представление прослушиватель анимации и вручную изменить положение представления в конце анимации.

Комментарии:

1. Может ли вид быть нерегулярным -прямоугольным: как в моем случае под углом 45 градусов?

2. AFAIK, вы не можете. Как прямоугольник используется для указания области попадания. Что вы можете сделать, так это подчинить view или imageview и переопределить событие ontouch и проверить, находится ли область касания внутри повернутого прямоугольника, и вернуться соответствующим образом.

3. Поскольку прямоугольники довольно длинные, их области попадания будут перекрываться, поэтому я буду иметь более одной области попадания на прямоугольник. Больше работы, но хо-хо…