我想在android文本视图中添加动画,这样当文本发生变化时,它应该平滑而缓慢地变化.喜欢,当文本改变时淡入或淡出.在Android中使用动画是否可行?我到目前为止;
主要活动
public class MainActivity extends AppCompatActivity { TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn = (Button) findViewById(R.id.btn); tv = (TextView)findViewById(R.id.textview); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tv.setText(String.valueOf(Integer.valueOf((String) tv.getText()) + 1)); } }); } }
activity_main.xml中
Salauddin Ga.. 16
使用TextSwitcher
要在TextSwitcher中显示的字符串数组
String textToShow[] = {"Main HeadLine", "Your Message", "New In Technology"};
你必须设置动画
mSwitcher.setInAnimation(context, android.R.anim.slide_in_left); mSwitcher.setOutAnimation(context, android.R.anim.slide_out_right);
通过调用方法setText(CharSequence文本)触发动画
// When clicked on Button TextSwitcher will switch between texts btnNext.setOnClickListener(new View.OnClickListener() { public void onClick (View v) { currentIndex++; // If index reaches maximum reset it if (currentIndex == messageCount) { currentIndex = 0; } mSwitcher.setText(textToShow[currentIndex]); }):
如果要设置不带动画的文本,请调用方法setCurrentText(CharSequence text).
使用TextSwitcher
要在TextSwitcher中显示的字符串数组
String textToShow[] = {"Main HeadLine", "Your Message", "New In Technology"};
你必须设置动画
mSwitcher.setInAnimation(context, android.R.anim.slide_in_left); mSwitcher.setOutAnimation(context, android.R.anim.slide_out_right);
通过调用方法setText(CharSequence文本)触发动画
// When clicked on Button TextSwitcher will switch between texts btnNext.setOnClickListener(new View.OnClickListener() { public void onClick (View v) { currentIndex++; // If index reaches maximum reset it if (currentIndex == messageCount) { currentIndex = 0; } mSwitcher.setText(textToShow[currentIndex]); }):
如果要设置不带动画的文本,请调用方法setCurrentText(CharSequence text).
如果您想支持Android 4+。请查看Transitions Everywhere库。您可以实现向后兼容的各种不同动画。
在这里您可以找到一些示例。
只需几行,您就可以开始了!
TransitionManager.beginDelayedTransition(transitionsContainer, new ChangeText().setChangeBehavior(ChangeText.CHANGE_BEHAVIOR_OUT_IN));
现在您要做的就是更改文本,所有的魔术都为您完成。