的ImageView
是動畫與旋轉的動畫:爲什麼使用動畫設置可見性失敗?
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
,它運行良好。
我的問題是:爲什麼動畫視圖的可見性沒有改變?
更新: 在FrameLayout
包裝視圖和設置FrameLayout
的visibilty作品。但是,這仍然是一個醜陋的解決方法。
這是一個旋轉動畫(更新問題)。我沿着同樣的思路思考,但在動畫被取消之後,可見性設置爲GONE,我相信該區域必須重新繪製(因爲視圖不再可見)。所以,很難消化這只是動畫師渲染視圖的剩餘部分。 –
我已經用獨立活動更新了問題,您可以運行它並查看我的意思。 –