TextSwitcher可以在使用setText时候,增添动画效果。TextView调用setText时直接变化,有点太突兀。
提示:使用TextSwitcher时,设定文字应该使用textSwitcher对象,而不是使用其内部的TextView对象调用setText()方法。
TextSwitcher textSwitcher; boolean b = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textSwitcher = (TextSwitcher) findViewById(R.id.textswitcher); textSwitcher.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (b) { textSwitcher.setText("true"); b = false; } else { textSwitcher.setText("false"); b = true; } } }); textSwitcher.setFactory(new ViewSwitcher.ViewFactory() { @Override public View makeView() {TextView view = new TextView(getBaseContext()); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); view.setTextSize(20); view.setLayoutParams(params); view.setGravity(Gravity.CENTER); return view; } }); Animation in = AnimationUtils.loadAnimation(this, android.R.anim.fade_in); Animation out = AnimationUtils.loadAnimation(this, android.R.anim.fade_in); textSwitcher.setInAnimation(in); textSwitcher.setInAnimation(out); }