Как создать представление Circular Reel в Android? - PullRequest
0 голосов
/ 05 июня 2018

enter image description here

Как мне создать подобный вид в Android?Я создал это круглое изображение основного кадра, используя нарисованную форму круга

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval" >
    <solid android:color="#000"/> <!-- this one is ths color of the  Rounded Button -->
    <corners
        android:bottomRightRadius="100dp"
        android:bottomLeftRadius="100dp"
        android:topLeftRadius="100dp"
        android:topRightRadius="100dp"/>
</shape>

Как разместить внутренние изображения в этой круглой рамке?

1 Ответ

0 голосов
/ 05 июня 2018

enter image description here

Используйте изображение с круговой катушкой в ​​качестве маски: вырежьте слоты изображения так, чтобы альфа была нулевой, где изображения идут.Вы будете рисовать это изображение последним поверх ваших изображений.

Каждое изображение в каждом слоте необходимо повернуть и перевести в положения слотов.Сначала поверните изображение (вокруг центра изображения), а затем переведите изображение в его слот.

Вам не нужно делать это динамически, так как все слоты фиксированы.Это означает, что вы рассчитываете преобразование изображения, используя обычную старую ручку и бумагу, а затем встраиваете каждое преобразование вручную в разметку макета.Некоторые полезные формулы получены из полярных систем координат (r, тета) и преобразований в декартову (x, y).Вся моя математика на картинке в градусах, но вам лучше работать в радианах.

R - это радиус круга, расстояние от центра барабана до центральной линии видаslots.

Если бы я был вами (и если бы вы хотели динамически изменять изображения), то я бы узнал, как указать пустую ячейку для каждого преобразования и добавить изображения в ex post facto.

Потренируйтесь в выравнивании одного изображения, а затем проработайте математику для остальных слотов.

...