在Android中,可以使用属性动画来实现平移动画,并通过设置不同的属性值来实现不同的效果。以下是一个示例代码,演示如何在第二次执行平移动画时使用不同的属性值:
import android.animation.ObjectAnimator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
private View mTargetView;
private boolean mIsFirstAnimation = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTargetView = findViewById(R.id.target_view);
// 设置点击事件,在点击时执行平移动画
mTargetView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mIsFirstAnimation) {
// 第一次执行动画,平移距离为100dp
ObjectAnimator animator = ObjectAnimator.ofFloat(mTargetView, "translationX", 0, dp2px(100));
animator.setDuration(1000);
animator.start();
} else {
// 第二次执行动画,平移距离为200dp
ObjectAnimator animator = ObjectAnimator.ofFloat(mTargetView, "translationX", 0, dp2px(200));
animator.setDuration(1000);
animator.start();
}
// 切换动画执行标识
mIsFirstAnimation = !mIsFirstAnimation;
}
});
}
// dp转px的工具方法
private int dp2px(int dp) {
float density = getResources().getDisplayMetrics().density;
return (int) (dp * density + 0.5f);
}
}
在上述代码中,我们使用了ObjectAnimator
来创建平移动画,并设置了不同的平移距离来实现第二次执行时的不同效果。在点击目标View时,通过切换动画执行标识mIsFirstAnimation
来选择不同的平移距离。同时,通过dp2px()
方法将dp单位转换为px单位,以适配不同屏幕密度的设备。
下一篇:Android的PJSIP库更新