前言
在刚开始做这个效果的时候,我用了一个textview和一个imageview的叠加来实现这个效果,自己觉得很不错,但是朋友觉得很蠢,因为textview自己就能实现这个效果啊,后来看了以下还真是,就把它写出来
首先,我们需要有一个textview,然后我们要设置它的字体滚动显示
<TextView
android:id="@+id/txt"
android:layout_width="400dp"
android:layout_height="30dp"
android:textSize="20sp"
android:paddingLeft="35dp"
android:paddingRight="15dp"
android:layout_above="@+id/search"
android:layout_centerHorizontal="true"
android:layout_marginBottom="30dp"
android:background="@drawable/ggt"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:singleLine="true"
android:focusable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:textColor="#ffffffff"/>
这是一个常规的textview代码,不过我在这个中间添加很多属性,接下来为大家一一解释
<span style="white-space:pre"> </span>android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
这两个属性分别是
字体滚动和
永久滚动
android:singleLine="true"
这个是设置
字体单行显示,如果字体很长,没有这个会导致出现多行显示的效果
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
设置这个属性以后,我们可以
用手去滑动字体,操纵它的运动
在设置了这些以后,你会觉得不美观,想要给他来个背景图片,这个就不解释了,但是,在设置完背景图以后,你会发现,你的字体完全的显示在图上,有可能会不美观,比如:如是有个小喇叭的图,字体会显示在喇叭上,这样的效果我们就不喜欢啦,那么有什么方法能解决呢?当然有,那就是设置边距,textview有paddingLeft,paddingRight等多个属性,你只需要给它添加一定的数值就行啦,就像这个
android:paddingLeft="35dp"
android:paddingRight="15dp"
这样就可以啦!