Как я могу создать подобное представление в 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>
Как разместить внутренние образы в этой круглой рамке?
Используйте изображение Круговой катушки в качестве маски: вырежьте слоты изображения так, чтобы альфа-канал был равен нулю там, где располагаются изображения. Вы нарисуете это изображение в последнюю очередь поверх своих картинок.
Каждое изображение в каждом слоте нужно будет повернуть и перевести в положение слота. Сначала поверните изображение (примерно в центре изображения), а затем переместите изображение в соответствующий слот.
Вам не нужно делать это динамически, поскольку все слоты фиксированы. Это означает, что вы рассчитываете преобразование изображения, используя обычную старую ручку и бумагу, а затем вручную встраиваете каждое преобразование в разметку макета. Некоторые полезные формулы взяты из полярных систем координат (r, theta) и преобразованы в декартову (x, y). Вся моя математика на картинке выражена в градусах, но вам лучше работать в радианах.
R - это радиус круга, расстояние от центра барабана до центральной линии слотов просмотра.
Если бы я был вами (и если бы вы хотели динамически изменять изображения), то я бы узнал, как указать пустой слот для каждого преобразования и добавить изображения постфактум.
Попрактикуйтесь в выстраивании одного изображения, а затем вычислите остальные слоты.
Спасибо, @james, я попробую и вернусь к вам. Большое спасибо
не могли бы вы предоставить какой-нибудь код для помощи, я не понял его полностью. Спасибо
Пожалуйста, прочтите При каких обстоятельствах я могу добавить к своему вопросу «срочно» или другие похожие фразы, чтобы получить более быстрые ответы? - вкратце, это не идеальный способ обращения к волонтерам и, вероятно, контрпродуктивно для получения ответов. Пожалуйста, воздержитесь от добавления этого к своим вопросам.