Я хочу воспроизвести следующее в своем приложении:
Как видите, это в основном кнопка, которая увеличивает/уменьшает значение текстового представления, содержащегося в ней. Эта кнопка будет иметь три визуальных состояния -> не нажата, уменьшение и увеличение (, как показано на изображении выше, пользователь нажимает стрелки увеличения, и кнопка появляется нажатой с этой стороны)
Вот мои 3 состояния кнопок на данный момент:
Как вы видете,проблема, с которой я столкнулся, заключается в том, что я могу правильно наклонять/поворачивать текстовое представление, чтобы оно выглядело визуально правильно и отображалось под наклоном вместе с кнопкой при ее увеличении или уменьшении.
До сих пор я пробовал два разных подхода:
Создайте пользовательский класс текстового представления, который переопределяет метод onDraw()
для наклона холста :
@Override
public void onDraw(Canvas canvas) {
canvas.save();
canvas.skew(0.2f, 0f);
super.onDraw(canvas);
canvas.restore();
}
. Интегрировать класс Rotate3dAnimation
(источник здесь)и использовал множество различных вариаций для получения желаемого результата, например:
Rotate3dAnimation skew = new Rotate3dAnimation(
30, 0, centerX, centerY, 0, false);
txtAmount.startAnimation(skew);
К сожалению, я не совсем получаю точный результат, который отражает первое изображение выше. Я путаюсь с настройками значений оси Z -, наклона, поворота и т. д.
Я был бы очень признателен за любую помощь от любого, кто имеет опыт с этим материалом. Заранее спасибо