【发布时间】:2018-02-20 15:39:51
【问题描述】:
我正在做自定义搜索栏,如 WhatsApp、谷歌应用程序。我正在尝试在显示和关闭视图时添加动画。我添加动画 XML 文件来执行这些操作。
假设,如果用户按下搜索图标,它将以动画形式显示搜索栏。如果用户按下搜索栏中的关闭图标,它将以动画方式关闭搜索栏。
动画只在第一次发生。它不会像我按下搜索图标那样在第二次发生动画。
public class MainActivity extends AppCompatActivity implements Animation.AnimationListener{
ImageButton ibSearch;
EditText etSearch;
ImageButton ibBack,ibClose;
CardView cardView;
ObjectAnimator objectanimator;
RelativeLayout search;
Animation animOpenView,animCloseView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ibSearch = (ImageButton)findViewById(R.id.search);
cardView = (CardView) findViewById(R.id.searchBarC);
ibClose = (ImageButton) findViewById(R.id.close);
search = (RelativeLayout) findViewById(R.id.searchLayout);
animOpenView = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.anim_left);
animCloseView = AnimationUtils.loadAnimation(getApplicationContext(),
R.anim.anim_right);
animCloseView.setAnimationListener(this);
animOpenView.setAnimationListener(this);
ibSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
cardView.setVisibility(View.VISIBLE);
cardView.setAnimation(animOpenView);
}
});
ibClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
cardView.setVisibility(View.GONE);
cardView.setAnimation(animCloseView);
}
});
}
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
任何建议将不胜感激。
【问题讨论】:
标签: java android search android-animation