关于安卓跑马灯效果实现的课题研究

关于安卓跑马灯效果的课题研究:


相对于安卓系统来言,安卓是一个比较智能的移动设备,然而对于这些设备,中所运行的app,中难免出现一些需要跑马灯似的效果实现例如:需要提醒用户,以及特别公告之类的,这时就需要一个跑马灯的效果来显示这一段特别提醒,这样不仅醒目,而且给用户无论是感官上还是用户体验上都是绝佳的选择。


跑马灯的实现有很多种方式,接下来 ,我将向大家具体讲述xml文件中实现安卓跑马灯效果的步骤:


1.对于这一效果的实现,只有在TextView这一控件中实现。而这一实现需要改写xml文件。而这一xml文件存在于android项目res目录下的。


关于这一效果的实现,在TextView中有一个属性是android:ellipsize这一属性,给定其一个值为marquee的值,意为滚动效果。


然而这个时候就需要考虑一个很重要的因素,那就是,既然是跑马灯效果,那么它是会滚动的,而这个滚动的次数就成了问题,解决这个问题就需要TextView控件中的属性

android:marqueeRepeatLimit这一属性,给其设定的值为forever_marquee,设置为无限次数滚动。


然而,在安卓中它会根据你输入的文字以及设备的分辨率问题,当你 的文字个数到达一定数量是就会自动的换行,这样对于跑马灯的效果则就没有了意义,解决这一问题,用到了TextView这一控件中的android:ScrollHorizontally这一属性,将其设定为true。



2, 由于其跑马灯的实现需要单行的滚动,则这里就需要其TextView中的android:singleline这一属性,设定其为true。


这时,TextView就具备了跑马灯的效果,是不是感觉很简单呢。但是接下来问题又出现了,就是当这一安卓程序运行在虚拟机上发现并没有出现跑马灯的效果,这个又是为什么呢?


这是因为,跑马灯效果需要TextView获取当前的焦点,然而对于这一控件来说,它默认其中clickable,longclickable,focusable,focusablelntouchmode这四个属性都是false,所以跑马灯效果因为获取不到焦点的问题使其不能实现。


解决这个问题则需要将,focusable,focusablelntouchmode这两个属性的值修改为true,这样一来解决了TextView获取焦点这一个问题。从而使其跑马灯效果完美展示。



具体的代码如下:


<TextView

  android:id="@+id/tv"

  android:layout_width="match_parent"

  android:layout_height="wrap_content"

  android:ellipsize="marquee"

  android:marqueeRepeatLimt="forever_marquee"

  android:singLine="true"

  android:hcrollHorizontally="true"

  android:text="跑马灯效果展示"

  android:textcolor="#ff0000"

  android:textSize="20dp"

/>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值