gpt4 book ai didi

android - 是否可以根据触摸事件设置动画枢轴值?

转载 作者:行者123 更新时间:2023-11-30 02:35:44 25 4
gpt4 key购买 nike

我有一个 ImageView,还有一个 ScaleAnimation。

           ScaleAnimation scaleAnimation =
new ScaleAnimation(1.0f, 5f, 1.0f, 5f,
ScaleAnimation.RELATIVE_TO_SELF, 0.5f,
ScaleAnimation.RELATIVE_TO_SELF, 0.30f);

scaleAnimation.setDuration(9000);

ImageView lol = (ImageView) findViewById(R.id.imageView1);

lol.setImageResource(R.drawable.img1);
lol.setAnimation(scaleAnimation);

一切都很好,但我真的希望用户能够决定放大图像的哪一部分。有什么方法可以将触摸坐标转换为枢轴值吗?

谢谢!

最佳答案

就像 alanv 建议的那样,您可以在 ImageView 上使用 OnTouchListener 来获取触摸坐标并将这些值传递给缩放动画。像这样:

        lol.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(final View v, MotionEvent event) {
ScaleAnimation scaleAnim = scaleAnimation;
Log.i(TAG, "x:"+event.getX() + ", y:"+ event.getY());
startScaleAnimation(v, scaleAnim, event.getX()/v.getWidth(), event.getY()/v.getHeight());
v.performClick();
return true;
}
});

//a method to execute your animation
static void startScaleAnimation(View v, ScaleAnimation scaleAnim, float pivotX, float pivotY){
scaleAnim =
new ScaleAnimation(1.0f, 5f, 1.0f, 5f,
ScaleAnimation.RELATIVE_TO_SELF, pivotX,
ScaleAnimation.RELATIVE_TO_SELF, pivotY);
scaleAnim.setDuration(4000);

v.startAnimation(scaleAnim);
}

这将从用户触摸的点开始放大您的 ImageView

关于android - 是否可以根据触摸事件设置动画枢轴值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com