Так что это проблема.
Анимация при первом запуске не работает, я понятия не имею, почему.
Сначала я использовал xml для анимации, но в этом случае анимация работала только с первой попытки и никогда больше, поэтому я изменил и сделал все в Java-коде.
Но теперь он всегда работает, кроме первой попытки.
Должен прояснить, что мне нужно работать над версией 2.2 (froyo).Android Animation не работает при первом запуске
public class HomePage extends Activity {
protected View menu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home_page_portrait);
ImageButton plus = (ImageButton) findViewById(R.id.button1);
menu = (View) findViewById(R.id.layoutmenu);
plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//menu.clearAnimation();
Animation animation = new TranslateAnimation(0,-menu.getWidth(),0,0);
menu.clearAnimation();
if(menu.isShown()) {
animation.setDuration(500);
animation.setFillAfter(true);
menu.setAnimation(animation);
menu.setVisibility(View.GONE);
}
else {
animation.reset();
animation = new TranslateAnimation(-menu.getWidth(),0,0,0);
animation.setDuration(500);
animation.setFillAfter(true);
menu.setVisibility(View.VISIBLE);
menu.setAnimation(animation);
}
}
});
}
}
Любые подсказки?
EDIT
Так что я изменил мой код, но теперь не работает.
public void onClick(View v) {
//menu.clearAnimation();
Animation animation;
menu.clearAnimation();
if(menu.isShown()) {
//animation.reset();
animation = new TranslateAnimation(0,-menu.getWidth(),0,0);
animation.setDuration(500);
animation.setFillAfter(true);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
menu.setVisibility(View.GONE);
}
});
menu.setAnimation(animation);
menu.setVisibility(View.GONE);
}
else {
//animation.reset();
animation = new TranslateAnimation(-menu.getWidth(),0,0,0);
animation.setDuration(500);
animation.setFillAfter(true);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
menu.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
menu.setVisibility(View.VISIBLE);
}
});
menu.setAnimation(animation);
//menu.setVisibility(View.VISIBLE);
}
animation.reset();
}
});
Oh well .. Изменен .. но не работает вообще. Есть идеи? [New code post] –
Удалить строку menu.setVisibility (View.GONE); который находится вне слушателя. – Pavandroid
Еще ничего. Не работает вообще! –