Внедрение пользовательских колес или игровых автоматов Android

Мне нужно реализовать колесо, подобное управлению (игровому автомату), как на картинке.

enter image description here

Но ребра (позиция между элементами) каждого элемента должны быть сглажены, чтобы он выглядел как глобус, подобный земле. Это скриншот iPhone приложения, полученного из библиотеки для iPhone. Я хочу его в android. Я проверил колесо kankan (колесо Android), но это не соответствует моим потребностям. Однако для меня это циклическое поведение. И я также проверил следующую ссылку.

http://developer.sonymobile.com/2010/06/23/android-tutorial-making-your-own-3d-list-part-3/

Я играл с холстом и матрицей с некоторыми значениями для методов pretranslate post translate scale и т.д. Но я не имею ни малейшего представления о том, как это работает, какое влияние это будет делать с определенным значением для перекоса и т.д. Когда я обсуждал с дизайнерами пользовательского интерфейса, они сказали мне, что для достижения этого дизайна экрана используйте свойство "перекос" или "перспектива". Но я не знаю, как перекосить или применить перспективу к изображению в Android. Я попытался применить некоторые значения для перекоса в методе drawChild() в представлении пользовательского списка (используется реализация представления списка по этой ссылке http://developer.sonymobile.com/2010/06/23/android-tutorial-making-your-own-3d-list-part-3/). Но взгляд стал невидимым.

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

Мне нужно знать, как будут реализованы следующие типы поведения. Потребности

  • Как только пользователь попытается выполнить прокрутку, он проверит пороговое значение и прокрутит его, только если пороговое значение выше установленного порога.

  • Элементы прокручиваются циклически, в том смысле, что после последнего символа колесо показывает первый элемент и так далее. Если есть только один элемент, тогда колесо должно заполняться одним элементом.

  • После прокрутки просмотра все касания отключены, пока колесо не закончится.

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

  • Когда мы устанавливаем элемент, который следует выбирать с помощью методов setSelected() или setSelection(), например, в демонстрации на kankan wheel (колесо Android), колесо должно постепенно замедляться до указанного положения, а не сразу останавливать колесо до это положение.

Ответ 1

Для перспективы посмотрите http://developer.android.com/reference/android/graphics/Camera.html

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

Ответ 2

Я не знаю, насколько вы близки к достижению своей цели, но вы можете пропустить использование классов Android и использовать 3d-движок, например, cocos 3d для Android. Импортируйте модель и сделайте ее кликабельным в правильных местах, и все такие вещи будут абстрагированы для вас, чтобы вы не тратили время на общение с другими вещами.

Ответ 3

enter image description here

Просто попробуйте это, сохраните 6 просмотров 5, как показано на изображении, и один в резерве. Когда вид 1 выходит из области видимости, открывается резервный вид со следующим изображением, и вид 1 стал резервным видом, так что вы должны отображать цикл столько раз, сколько захотите.

The width grows while it moves from bottom to center and shrinks when it rolls towards top

Ответ 4

Вы видели это? Возможно, вы сможете настроить его, но это отправная точка как минимум https://code.google.com/p/android-wheel/