Как сделать гладкий поворот изображения в Android?

Одна из целей ООП состояла в том, чтобы сделать возможность многократного использования легче однако, это не единственная цель. Ключом к обучению использовать объекты эффективно являются Шаблоны разработки.

Мы все привыкли к идее алгоритмов, которые говорят нам, как объединить различные процедуры и структуры данных для выполнения общих задач. С другой стороны взгляд на Шаблоны разработки Банды Четыре для идей о том, как объединить объекты выполнить общие задачи.

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

Помнят, что реализация Интерфейсов так же важна если не более важный, чем наследование. Назад в день C++ вел пример объектно-ориентированного программирования и использовал интерфейсы, затенены по сравнению с наследованием (виртуальные функции, и т.д.). Наследие C++ означало, что намного больше акцента было сделано многократному использованию поведения в различных учебных руководствах и широких обзорах. С тех пор Java, C# и другие языки переместили интерфейс до больше фокуса.

то, Для чего интерфейсы являются большими, точно определяет, как два объекта взаимодействуют с каждым. Это не о многократном использовании поведения. Как оказалось, большая часть нашего программного обеспечения о том, как различные части взаимодействуют. Так использование интерфейса дает намного больше повышения эффективности, чем попытка сделать допускающие повторное использование компоненты.

Помнят, что как много других Объектов идей программирования инструмент. Необходимо будет использовать лучшее суждение относительно того, как хорошо они работают на проект. Для моего программного обеспечения CAD/CAM для машин резки металла существуют важные математические функции, которые не помещаются в объекты, потому что нет никакой причины для них быть в объектах. Вместо этого они выставляются из библиотеки и используются объектом, которым нужны они. Затем существует, некоторая математическая функция, которые были сделаны объектно-ориентированными, поскольку их структура естественно приводит к этой установке. (Взятие списка точек и преобразования его в на нескольких различных типов вырезания путей). Снова используйте свое лучшее суждение.

209
задан emmby 27 October 2009 в 13:52
поделиться

2 ответа

Вы правы насчет AccelerateInterpolator; вместо этого следует использовать LinearInterpolator.

Вы можете использовать встроенный android.R.anim.linear_interpolator из XML-файла анимации с помощью android: interpolator = "@ android: anim / linear_interpolator" .

Или вы можете создать свой собственный файл интерполяции XML в своем проекте, например, назвать его res / anim / linear_interpolator.xml :

<?xml version="1.0" encoding="utf-8"?>
<linearInterpolator xmlns:android="http://schemas.android.com/apk/res/android" />

И добавить к своей анимации XML:

android:interpolator="@anim/linear_interpolator"

Специальное примечание: Если ваша анимация поворота находится внутри набора, установка интерполятора, похоже, не работает. Поворот верхнего элемента фиксирует это. (это сэкономит ваше время.)

195
ответ дан 23 November 2019 в 04:38
поделиться

Возможно ли, что из-за перехода от 0 к 360 вы потратите немного больше времени на 0/360, чем вы ожидаете? Возможно, установите в градусы 359 или 358.

1
ответ дан 23 November 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: