Перекос текстового представления в Android

Я хочу воспроизвести следующее в своем приложении:

enter image description here

Как видите, это в основном кнопка, которая увеличивает/уменьшает значение текстового представления, содержащегося в ней. Эта кнопка будет иметь три визуальных состояния -> не нажата, уменьшение и увеличение (, как показано на изображении выше, пользователь нажимает стрелки увеличения, и кнопка появляется нажатой с этой стороны)

Вот мои 3 состояния кнопок на данный момент:

enter image description hereenter image description hereenter image description here

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

До сих пор я пробовал два разных подхода:

  • Создайте пользовательский класс текстового представления, который переопределяет метод 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 -, наклона, поворота и т. д.

Я был бы очень признателен за любую помощь от любого, кто имеет опыт с этим материалом. Заранее спасибо

9
задан elgoog 7 July 2012 в 12:48
поделиться