1 つの大きな問題があります。このコードを使用して、ImageView をアニメーション化し、1 つの ImageView を現在の X 位置から 0 に水平に移動します。
アニメーションコードはこちら
translate = new TranslateAnimation(0, translateX, 0, 0);
translate.setDuration(400);
translate.setAnimationListener(new AnimationListener() {
public void onAnimationEnd(Animation animation) {
txtTitle.setText(String.format("Translate: %d %d", translateX, lpView1.leftMargin));
lpView1.leftMargin = 0;
mainSwitchBtn.setLayoutParams(lpView1);
}
public void onAnimationRepeat(Animation animation) {
}
public void onAnimationStart(Animation animation) {
}
});
translate.reset();
translate.setFillAfter(false);
mainSwitchBtn.clearAnimation();
mainSwitchBtn.startAnimation(translate);
アニメーションが終了したら、ImageView を 0 に移動しました。その際、ImageView のちらつきが見られます。何が問題なのかわからない。誰かが私を助けることができますか?
編集: 設立された問題
私は自分のコードに問題があることを発見しました。
このコードを置き換えました
mainSwitchBtn.setLayoutParams(lpView1);
これとともに
mainSwitchBtn.layout(0, 0, 0, 0);
レイアウト パラメータにマージンを設定することと、オブジェクトを表示するためのパラメータを設定すること、または .layout 関数を使用することの違いは何なのかわかりませんが、ちらつきはありません。