Android 图像视图比例+;翻译动画

Android 图像视图比例+;翻译动画,android,android-imageview,scale,translate-animation,Android,Android Imageview,Scale,Translate Animation,我正在尝试实现一个相当复杂的动画:我在ScrollView中得到了一个缩小的图像,当我点击它时,我希望它缩放到真实的X和Y+,最终位于ScollView的顶部并在屏幕中居中 所以,第一个问题:有没有一种方法可以设置缩放动画,以dp为起点和终点,以dp为高度 还有,第二个问题:有没有办法用开始和结束容器视图设置平移动画?动画通常使用像素大小参数,但您可以使用静态方法轻松转换像素中的dp: public static int dpToPixels(Context context, float dp)

我正在尝试实现一个相当复杂的动画:我在ScrollView中得到了一个缩小的图像,当我点击它时,我希望它缩放到真实的X和Y+,最终位于ScollView的顶部并在屏幕中居中

所以,第一个问题:有没有一种方法可以设置缩放动画,以dp为起点和终点,以dp为高度


还有,第二个问题:有没有办法用开始和结束容器视图设置平移动画?

动画通常使用像素大小参数,但您可以使用静态方法轻松转换像素中的dp:

public static int dpToPixels(Context context, float dp) {
    final float scale = context.getResources().getDisplayMetrics().density;
    return (int) (dp * scale + 0.5f);
}

关于你的第二个问题,我认为动画无法跨越其原始视图。

事实上,它不会。如果ImageView是ScrollView的子视图,则将其设置为原点(0,0)将使其位于ScrollView的左上角,而不是整个屏幕。但是他说他想把它设置到ScrollView的顶部,这样就不会有问题了。在缩放动画中,如何设置开始和结束的宽度和高度。我在文档中没有找到。你可以使用构造函数和透视值:公共ScaleAnimation(float-fromX,float-toX,float-fromY,float-toY,int-pivotXType,float-pivotXValue,int-pivotYType,float-pivotYValue)我知道,但是你能使用宽度和高度吗?我需要将图像从收缩的初始状态缩放到其原始宽度和高度。fromX和toX参数是缩放值。所以你需要为fromX和fromY设置0.0f,为toX和toY设置1.0f,你的动画比例将在原始宽度和高度上完成