我已經應用旋轉動畫到使用ObjectAnimator的按鈕,而旋轉似乎工作;樞軸點仍然是按鈕的左上角。設置樞軸旋轉動畫(ObjectAnimator),不工作?
MainActivity
Button bt1;
float pivotX=0f;
float pivotY=0f;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt1 = (Button) findViewById(R.id.button1);
pivotX = bt1.getX() + (float)bt1.getWidth();// 500;// bt1.getHeight() ;
pivotY = bt1.getY() + (float)bt1.getHeight();// 500;// bt1.getWidth();
bt1.setPivotX(pivotX);
bt1.setPivotY(pivotY);
bt1.setOnClickListener(this);
}
private void rotate()
{
ObjectAnimator rotate = ObjectAnimator.ofFloat(bt1, View.ROTATION_X,360);
rotate.setDuration(2000);
AnimatorSet aSet = new AnimatorSet();
aSet.play(rotate);
aSet.start();
}
@Override
public void onClick(View v)
{
switch(v.getId())
{
case R.id.button1:
rotate();
break;
}
}
編輯: bt1.getX和bt1.getY返回0會更新一次,我知道爲什麼了。
編輯:這似乎也沒有工作。
@Override
public void onWindowFocusChanged(boolean hasFocus)
{
// TODO Auto-generated method stub
super.onWindowFocusChanged(hasFocus);
//Here you can get the size!
width = bt1.getWidth();
height = bt1.getHeight();
}
你知道了嗎?和,你想在哪裏樞軸點?如果它是中心的,我認爲你需要做的就是將現有的樞紐值除以2,並且應該居中 – wkhatch