在开发中TextView可以自实现跑马灯,如果是多个TextView循环滚动(一些通知消息),可以采用ViewFilpper控件来实现。
![效果图](https://img-blog.csdn.net/20161124161429314)
public class MainActivity extends AppCompatActivity {
private ViewFlipper vp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp = (ViewFlipper) findViewById(R.id.vp);
fillView();
}
private void fillView() {
for (int i = 0; i < 5; i++) {
TextView view = new TextView(this);
ViewFlipper.LayoutParams params = new ViewFlipper.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
view.setLayoutParams(params);
view.setText("hahahahahaha" + i);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "我被点了", Toast.LENGTH_SHORT).show();
}
});
vp.addView(view);
}
//是否自动开始滚动
vp.setAutoStart(true);
//滚动时间
vp.setFlipInterval(2000);
//开始滚动
vp.startFlipping();
//出入动画
vp.setOutAnimation(this, R.anim.push_up_out);
vp.setInAnimation(this, R.anim.push_down_in);
}
}
布局文件activity_main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="cn.my.viewflipperdemo.MainActivity">
<ViewFlipper
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_height="50dp" />
</RelativeLayout>
进入动画 push_down_in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="300"
android:fromYDelta="100%"
android:toYDelta="0" />
</set>
滚出动画push_up_out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="300"
android:fromYDelta="0"
android:toYDelta="-100%" />
</set>