您的位置:首页 > 移动开发 > Android开发

Android 横竖跑马灯效果

2016-06-13 09:31 399 查看
1.横向效果:

在xml文件里TextView设置以下属性:

android:singleLine="true"
android:ellipsize="marquee"
android:focusableInTouchMode="true"
android:focusable="true"
android:marqueeRepeatLimit="-1"//the number of times to repeat marquee animation-1代表循环播放

ps:textview里文字长度要超过textview的长度

2.竖向效果:

point:利用ViewFlipper

xml:

<ViewFlipper
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/flip"
>


代码:

private String[] str = {"这是第一个文本","这是第二个文本","这是第三个文本"};

private ViewFlipper viewFlipper;

viewFlipper = (ViewFlipper)view.findViewById(R.id.flip);

for(int i = 0; i < str.length ; i++){
TextView tv = new TextView(getActivity());
tv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,50));
tv.setText(str[i]);
viewFlipper.addView(tv);
}
viewFlipper.setInAnimation(AnimationUtils.loadAnimation(getActivity(),R.anim.note_flipper_in));
viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(getActivity(),R.anim.note_flipper_out));
viewFlipper.startFlipping();


anim:
note_flipper_in:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate
android:fromYDelta="-50"
android:toYDelta="0"
android:duration="300"
></translate>
</set>note_flipper_out:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate
android:fromYDelta="0"
android:toYDelta="50"
android:duration="300"></translate>
</set>

ps:之所以设置成-50—0—50,是因为textview的height为50,也就是说,只有在动画设置的范围是在大于等于textview的高度的时候,才能出现文字不重叠的效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息