AnImageView
使用旋转动画进行动画处理:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
public class Test extends Activity implements View.OnClickListener {
private ImageView mIcon;
private Animation mRotate;
private boolean mShown = true;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mIcon = new ImageView(this);
mIcon.setImageDrawable(
getResources().getDrawable(android.R.drawable.ic_dialog_alert)
);
mIcon.setOnClickListener(this);
setContentView(mIcon);
mRotate = new RotateAnimation(
0f,360f,
getWindowManager().getDefaultDisplay().getWidth()/2,
getWindowManager().getDefaultDisplay().getHeight()/2
);
mRotate.setDuration(2000);
mRotate.setRepeatMode(Animation.RESTART);
mRotate.setRepeatCount(Animation.INFINITE);
mRotate.setInterpolator(new LinearInterpolator());
mIcon.setAnimation(mRotate);
}
@Override
public void onClick(View view) {
if(mShown){
mRotate.cancel();
mIcon.setVisibility(View.GONE);
}else {
mIcon.setVisibility(View.VISIBLE);
mRotate.reset();
mRotate.start();
}
mShown = !mShown;
}
}
该部分mProgress.setVisibility(GONE);
不起作用。ImageView
根本不隐藏。如果我不设置Animation
它,它工作得很好。
我的问题是:为什么动画视图的可见性没有改变?
更新:将 View 包装在 aFrameLayout
和 settingFrameLayout
的可见性中。但是,这仍然是一个丑陋的解决方法。