自定义View之跑马灯效果

640?wx_fmt=png&wxfrom=5&wx_lazy=1


今日科技快讯


据外媒报道,知名科技媒体Re/code和网上调查平台SurveyMonkey最近进行联合调查,旨在评选出美国人认为对社会积极影响最大的科技公司。调查提出了这样一个问题:“以下哪家公司对当今社会影响最大?”结果显示,位居榜首的是电商巨头亚马逊,它获得了20%受访者的支持。紧随其后的是谷歌,支持率为15%。苹果仅以11%的得票率位居第三。


作者简介


本篇来自 丁瑞 的投稿,分享了安卓开发自定义View之跑马灯,一起来看看!希望大家喜欢。

丁瑞  的博客地址:

https://blog.csdn.net/iamdingruihaha


正文


好久没写东西了,感觉有点虚度光阴了,也感觉有点生疏了,刚好最近项目里面有个跑马灯的需求,TextView一通设置之后还是出现各种冲突,尤其是当TextView与EditText共存的时候,所以干脆自己自定义了一个跑马灯MarqueeView 老规则,先上效果图 ,gif录制出来有点怪,可以安装看看实际效果:

640?wx_fmt=gif

控件具体特性为:

  • 有三种滚动模式 :

    • 滚动一次直接结束

    • 滚动结束一次完全之后,继续第二次滚动

    • 滚动到尾部出现之后,头部紧跟着滚动

  • 文本内容的设置可以是String 类型,也可以是List类型

  • 文本与文本之间的间距可设置

  • 文本滚动的初始位置可设置

  • 文本的大小、颜色、滚动速度可设置

  • 点击文本是否暂停或继续可设置

  • 再次设置文本内容的时候,是否初始化移动位置可设置

此控件效果不是很难,不过很适合对于自定义View不熟悉的同学练一练,尤其是里面那隐隐约约的数学计算和分析,还是蛮有一番滋味的,有需要的朋友也可以省点时间直接用了。

下面来具体说一下实现思路:

自定义控件属性

按照控件特性,就能很容易的自定义出来,这里不多解释了,属性如下:

      <attr name="marqueeview_repet_type" format="enum">
           <enum name="repet_oncetime" value="0"/><!-- 播放一次 -->
           <enum name="repet_interval" value="1"/>  <!--连续播放 循环结束再继续下次循环-->
           <enum name="repet_continuous" value="2"/>  <!--连续播放 到末尾直接继续下次循环-->
       </attr><!--循环模式-->

       <attr name="marqueeview_text_distance" format="integer"/><!--每个item之间的距离-->
       <attr name="marqueeview_text_startlocationdistance" format="float"/><!--开始的起始位置 按距离控件左边的百分比 0~1之间 -->

       <attr name="marqueeview_text_speed" format="float"/><!--播放速度 也就是文字滚动速度-->
       <attr name="marqueeview_text_color" format="color|reference"/><!-- 文字颜色 -->
       <attr name="marqueeview_text_size" format="float"/><!-- 文字大小 -->

       <attr name="marqueeview_isclickalbe_stop" format="boolean"/><!--是否点击暂停-->
       <attr name="marqueeview_is_resetLocation" format="boolean"/><!--重新改变内容的时候 , 是否初始化 位置,默认为true,改变-->

实现文本展示与滚动

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值