您的位置:首页 > 其它

ViewFilpper实现TextView广告上滚的效果(一)--入门

2017-04-12 09:55 302 查看
直接贴上代码吧,看注释就ok了

/**
* ViewFilpper实现TextView广告上滚的效果
* 可与ViewPager对比
* */

public class MainActivity extends AppCompatActivity {

private ViewFlipper viewFlipper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

viewFlipper = (ViewFlipper) findViewById(R.id.view_filpper);

for(int i = 0; i < 10; i++) {
TextView tv = new TextView(this);
tv.setId(i);
tv.setText("滚动广告效果" + i);
//. addView的参数是View,因此可以添加布局
//. View view = LayoutInflater.from(this).inflate(R.layout.activity_main, null);
viewFlipper.addView(tv);
}
//. 设置动画切换的时间间隔
viewFlipper.setFlipInterval(2000);
//. 设置进入的动画
viewFlipper.setInAnimation(this, R.anim.roll_in);
//. 设置退出的动画
viewFlipper.setOutAnimation(this, R.anim.roll_out);
//. 启动动画,开始循环;停止循环:stopFlipping
viewFlipper.startFlipping();
//. 设置监听
viewFlipper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//. 测试单个控件 获取当前控件的id --> succeed
int id = viewFlipper.getCurrentView().getId();
Log.d("execute", id + "");

//. 测试以布局View为单位的 -->succeed
//. View view = viewFlipper.getCurrentView();
//. TextView textView = (TextView) view.findViewById(R.id.tv_num);
//. textView.setText("完全尅");
}
});
//. 循环状态
boolean state = viewFlipper.isFlipping();

}

}


滚入跟滚进的布局:

(1)roll_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="500"/>
<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" />
</set>


(2)roll_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="500"/>
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" />
</set>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: