ViewFlipper——Android循环滚动控件
1、效果如下:
2、实现方法
(1)创建进出动画
上下滚动动画
y_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromYDelta="100%p"android:toYDelta="0"android:duration="1000"/>
</set>
y_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromYDelta="0"android:toYDelta="-100%p"android:duration="1000"/>
</set>
左右滚动动画
x_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta="100%p"android:toXDelta="0"android:duration="1000"/>
</set>
x_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta="0"android:toXDelta="-100%p"android:duration="1000"/>
</set>
(2)layout文件引用ViewFlipper
<ViewFlipperandroid:id="@+id/filpper"android:layout_width="match_parent"android:layout_height="wrap_content"android:autoStart="true"android:flipInterval="2000"android:inAnimation="@anim/x_in"android:outAnimation="@anim/x_out"/>
(3)activity中java代码实现ViewFlipper跑马灯效果
TextView textView;
ViewFlipper viewFlipper;
viewFlipper= (ViewFlipper) findViewById(R.id.filpper);
for (int i = 0; i < 5; i++) {View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.layout_custom, null);textView = view.findViewById(R.id.myte1);textView.setText("sssssssss===="+i);viewFlipper.addView(view);
}
4、ViewFlipper的item点击事件——demo链接:https://download.csdn.net/download/meixi_android/10815720
5、demo云盘链接:https://pan.baidu.com/s/1AvqpfbzCAXtZ-TLVmEUyvw
在线回复云盘密码:qq1085220040
6、可实现banner轮播图效果
左右跑马灯
<LinearLayoutandroid:id="@+id/ll_bottom"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:background="#FDC74B"><TextViewandroid:id="@+id/tv_message"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="15pt"android:layout_marginRight="15pt"android:ellipsize="marquee"android:focusable="true"android:focusableInTouchMode="true"android:gravity="center_vertical"android:includeFontPadding="false"android:marqueeRepeatLimit="marquee_forever"android:paddingBottom="15pt"android:paddingTop="15pt"android:singleLine="true"android:textColor="@color/black"android:textSize="36pt" /></LinearLayout>
public class StringUtil {//长度加倍public static String multiplyString(String str, int number) {if (str == null) {throw new NullPointerException("String is null!");}if ("".equals(str)) {throw new IllegalArgumentException("The length of string is zero !");}if (number == 0) {throw new IllegalArgumentException("Number is zero!");}StringBuffer buffer = new StringBuffer();for (int i = 0; i < number; i++) {buffer.append(str);}return buffer.toString();}}
tvMessage.setText(aboutUsResult.getData().getApkmsg() + StringUtil.multiplyString(" ", 30));