10

在尝试为我想要的布局找到解决方案时,我遇到了 setScaleX/setScaleY 方法,它们是 View 类的成员。

查看课程文档

现在看一下 API Level 8 的 RelativeLayout 和过滤方法,因为我正在开发一个 >= 2.2 的应用程序,所以上述方法会淡出。但是当查看“从类 android.view.View 继承的 XML 属性”时,属性 android:scaleX/android:scaleY 仍然可用。不幸的是,尝试使用这些属性不起作用,Eclipse 说:“错误:在包'android'中找不到属性'scaleX'的资源标识符”

相对布局类文档

所以看起来文档是矛盾的,scaleX/scaleY 直到 3.0 才可用,或者我错过了什么?

4

5 回答 5

5

当我尝试在播放任何动画之前使用初始 scaleX 值设置视图时遇到了类似的问题,但是 view.setScaleX() 自 API 级别 11 以来符合 @Dr.J 。

如果您想在早期 API 级别中使用 Honeycomb 动画 API,请在http://nineoldandroids.com/上尝试使用 NineOldAndroids 。基于这个开源库,有一种解决方法可以为视图提供初始 scaleX。

    ObjectAnimator.ofFloat(getMyButton(), "scaleX", 1f, 0f).setDuration(1).start();
于 2013-05-05T16:14:46.127 回答
3

好的,看起来这是文档中的错误表示,因为它在这里解释scaleX/scaleY 是使用 Honeycomb 添加到 View 类的属性,因此很遗憾在 Froyo 中不可用。

于 2011-04-21T08:00:05.530 回答
3

不,文档是正确的:

public void setScaleX (float scaleX) 自:API 级别 11

Froyo 是 API 8 级。

于 2011-04-21T08:05:16.963 回答
3

NineOldAndroid根据它的 github 链接NineOldAndroid弃用

使用Android Support library代替NineOldAndroid

所以你应该使用ViewCompat而不是ViewHelper

只需更改:

view.setScaleX(2);

或者

ViewHelper.setScaleX(view,2);

到:

ViewCompat.setScaleX(view,2);

希望能帮助到你

于 2015-08-25T09:32:47.880 回答
2

com.nineoldandroids.view.ViewHelper用于较旧的 API:

ViewHelper.setScaleY(myButton, 0.01f);
于 2014-07-14T23:02:22.207 回答