例如,"encyclopedia"显示, 只是举例,以实际显示为准:)


android:ellipsize=”start”—–省略号显示在开头 "...pedia"
android:ellipsize=”end”——省略号显示在结尾 "encyc..."
android:ellipsize=”middle”—-省略号显示在中间 "en...dia"
android:ellipsize=”marquee”–以横向滚动方式显示(需获得当前焦点时)

对于使用marquee即滚动显示方式的,需要当前textview获得焦点才会滚动。所以有时可能因为实际需要,textview未获得焦点或者需要多个textview都同时滚动显示时,可以采用以下办法:

因为判断textview是否处于focused状态是通过它本身isFocused()方法,这样只要此方法返回为true时,即认为处于focused的状态,就可以滚动啦。

所以可以通过继承TextView类,并overrideisFocused()方法来控制是否滚动咯。

另外如果是组合View,外层layout需要加入以下属性来保证focus状态的传递:addStatesFromChildren="true"

定义走马灯(Marquee),主要在Project/res/layout/main.xml即可

<TextView
android:layout_width="40px"
android:layout_height="wrap_content"
android:text="Test marquee for TextView"
android:layout_gravity="center"
android:ellipsize="marquee"
android:singleLine="true"
android:focusable="true"
android:marqueeRepeatLimit="marquee_forever"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
/>


关键点:
(1)layout_width设定的长度要比text其实的长度短才行,即layout_width显示不全text才会有走马灯效果
(2)ellipsize 即申明使用走马灯marquee
(3)singleLine表示单行显示
(4)marqueeRepeatLimit表示走马灯显示的次数:marquee_forever-无限制不间断显示

android:focusable="true"//让TextView获得焦点
android:focusableInTouchMode="true" //针对触摸屏获得当前焦点

事实上这两句代码我也了解不是特别多,在网上查了下这两个属性,目前理解为:

android:focusable="true"相当于当前Activity打开的时候,让当前控件TextView获得焦点,才可以实现滚动功能

android:focusableInTouchMode="true"和上述属性应该是类似的,但限制应该是指的触摸屏上的意思

若要让TextView里的文本滚动,必须满足以下几个因素:

1,TextView里文本宽度超过TextView的宽度
2,android:ellipsize="marquee"
3,只有在TextView获取到焦点时,才会滚动.所以加上android:focusableInTouchMode="true" android:focusable="true"
最容易忽略的是第三条.

更多相关文章

  1. ImageView的scaletype属性
  2. View类的XML属性、相关方法及说明
  3. EditText 不显示光标 光标消失
  4. 禁止手机横竖屏
  5. ImageView的scaletype属性
  6. ImageView的属性android:scaleType,即ImageView.setScaleType(Ima
  7. android日历之滚动选择日期类似ios
  8. ViewPager的定时滚动,动态加载数据
  9. 禁止手机横竖屏

随机推荐

  1. Android学习笔记---第三天---基础UI组件-
  2. android用不锁屏设置
  3. Android中图像变换Matrix的原理、代码验
  4. Android 首次开机优化
  5. Android JNI学习笔记1(Android Studio)
  6. Android 画图类View与SurfaceView之学习
  7. Android监听应用的安装、卸载、覆盖
  8. 2D Physics on Android Using Box2D
  9. android: busybox am aapt
  10. Android Studio 添加类似eclipse 里的use