Что случилось с setScaleX / setScaleY? - PullRequest
10 голосов
/ 20 апреля 2011

Пытаясь найти решение для нужного мне макета, я наткнулся на методы setScaleX / setScaleY, которые являются членами класса View.

Просмотр класса документов

Теперь рассмотрим методы RelativeLayout и фильтрацию по API Level 8, так как я разрабатываю приложение для> = 2.2, указанные методы исчезают. Но при просмотре « Унаследованных атрибутов XML из класса android.view.View » свойства android: scaleX / android: scaleY по-прежнему доступны. К сожалению, попытка использовать эти свойства не работает, и Eclipse сообщает: "ошибка: не найден идентификатор ресурса для атрибута scaleX в пакете" android ""

RelativeLayout class doc

Так что, похоже, документация противоречива, и scaleX / scaleY недоступны до 3.0 или я что-то упустил?

Ответы [ 5 ]

5 голосов
/ 05 мая 2013

Я столкнулся с подобной проблемой, когда пытался установить представление с начальным значением scaleX перед воспроизведением каких-либо анимаций, однако view.setScaleX () с API уровня 11 соответствует @ Dr.J.

Если вы хотите использовать Honeycomb Animation API на более ранних уровнях API, попробуйте NineOldAndroids на http://nineoldandroids.com/. На основе этой библиотеки с открытым исходным кодом существует обходной путь, обеспечивающий представление начального scaleX.

    ObjectAnimator.ofFloat(getMyButton(), "scaleX", 1f, 0f).setDuration(1).start();
3 голосов
/ 21 апреля 2011

Нет, Документы верны:

публичный void setScaleX (float scaleX) Так как: уровень API 11

Froyo - уровень API 8.

3 голосов
/ 21 апреля 2011

Хорошо, похоже, что это ложное представление в документах, как объяснено здесь scaleX / scaleY - это свойства, добавленные в класс View с помощью Honeycomb, и поэтому, к сожалению, недоступные в Froyo.

2 голосов
/ 25 августа 2015

NineOldAndroid равно устарело в соответствии с его ссылкой на github NineOldAndroid

Используйте Android Support library вместо NineOldAndroid

, поэтому вам следуетиспользуйте ViewCompat вместо ViewHelper

, просто измените:

view.setScaleX(2);

или

ViewHelper.setScaleX(view,2);

на:

ViewCompat.setScaleX(view,2);

надеюсь, что этопомогает

2 голосов
/ 15 июля 2014

Используйте com.nineoldandroids.view.ViewHelper для более старых API:

ViewHelper.setScaleY(myButton, 0.01f);
...