Java View.getTranslationX/Y()是否等效?

Java View.getTranslationX/Y()是否等效?,java,android,android-view,Java,Android,Android View,我目前正在做一个小项目,需要帮助(显然)。该项目本身涉及到我用JellyBean BeanBag easteregg创建一个独立的应用程序,并且已经成功地做到了这一点,但是我还想创建并维护与2.3 sdk的兼容性,并且还使用Nineodeldroids库成功地做到了这一点。2.3 API不支持setScaleX()或setScaleY()方法,因此我做了以下更改: 从 到 这个问题来自于ViewHelper setScale,它需要一个视图参数,而普通调用只需要一个浮点值。我试过使用

我目前正在做一个小项目,需要帮助(显然)。该项目本身涉及到我用JellyBean BeanBag easteregg创建一个独立的应用程序,并且已经成功地做到了这一点,但是我还想创建并维护与2.3 sdk的兼容性,并且还使用Nineodeldroids库成功地做到了这一点。2.3 API不支持setScaleX()或setScaleY()方法,因此我做了以下更改:

这个问题来自于ViewHelper setScale,它需要一个视图参数,而普通调用只需要一个浮点值。我试过使用

            for (int i=0; i<getChildCount(); i++) {
                View v = getChildAt(i);
                ViewHelper.setScaleX(v,scale); ViewHelper.setScaleY(v,scale);
            }

用于(int i=0;i您只初始化了一次
scale
。为什么您希望循环中的每一个都不同?将
scale
初始化移动到循环中。

我尝试使用您的建议,但仍然收到相同的结果,您能提供一个示例说明您的意思吗?简单地将其移动到循环中并没有这样做lve您是否记录了每次初始化的
scale
值?这应该很简单。如果
scale
值相同,那么它们当然都是相同的比例。您的建议引导了我正确的方向,并最终解决了问题
            final float scale = lerp(MIN_SCALE,MAX_SCALE,z);
            ViewHelper.setScaleX(v,scale); ViewHelper.setScaleY(v,scale);
            for (int i=0; i<getChildCount(); i++) {
                View v = getChildAt(i);
                ViewHelper.setScaleX(v,scale); ViewHelper.setScaleY(v,scale);
            }
    static Random sRNG = new Random();
    static float MIN_SCALE = 0.2f;
    static float MAX_SCALE = 1f;

    static float lerp(float a, float b, float f) {
        return (b-a)*f + a;
    }

    static float randfrange(float a, float b) {
        return lerp(a, b, sRNG.nextFloat());
    }

            for (int i=0; i<getChildCount(); i++ ) {
                View v = getChildAt(i);
                float scale = randfrange(MIN_SCALE,MAX_SCALE);
                ViewHelper.setScaleX(v,scale); ViewHelper.setScaleY(v,scale);
            }