怎么了setScaleX / setScaleY?

问题描述 投票:10回答:5

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

View class doc

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

RelativeLayout class doc

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

android android-view android-relativelayout
5个回答
5
投票

当我在播放任何动画之前尝试使用初始scaleX值设置视图时,我遇到了类似的问题,但是view.setScaleX()是从API Level 11加入@ Dr.J开始的。

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

    ObjectAnimator.ofFloat(getMyButton(), "scaleX", 1f, 0f).setDuration(1).start();

3
投票

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


3
投票

不,文件是对的:

public void setScaleX(float scaleX)从:API Level 11

Froyo是API等级8。


2
投票

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

ViewHelper.setScaleY(myButton, 0.01f);

2
投票

NineOldAndroid根据它的github链接NineOldAndroid被弃用

使用Android Support library而不是NineOldAndroid

所以你应该使用ViewCompatinstead的ViewHelper

只需更改:

view.setScaleX(2);

要么

ViewHelper.setScaleX(view,2);

至:

ViewCompat.setScaleX(view,2);

希望能帮助到你

© www.soinside.com 2019 - 2024. All rights reserved.