前段时间看小黄车头部有个滚动的消息条目动画,而且可以点击收起,于是抽空实现了下,具体如下
先上效果图

1、分析

通过观察,发现该布局由一个图片,一个文字组成,并且通过点击图片,会有一个伸缩的动画,也就是将文字隐藏的效果。文字的滚动通过跑马灯效果来实现

2、布局

<LinearLayout
    android:layout_width="wrap_content"android:layout_height="40dp"android:background="@drawable/shape_news"android:orientation="horizontal"android:layout_alignParentRight="true"android:layout_marginTop="10dp"><ImageView
        android:id="@+id/img_icon"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center|center_vertical"android:layout_marginTop="4dp"android:src="@mipmap/sy_xiaoxi_btn"/><TextView
        android:id="@+id/tv_text"android:layout_width="200dp"android:layout_height="wrap_content"android:text="未满12周岁请勿骑行,未满12周岁请勿骑行,未满12周岁请勿骑行"android:singleLine="true"android:textColor="@color/white"android:textSize="12sp"android:layout_toRightOf="@+id/img_icon"android:gravity="center"android:focusable="true"android:ellipsize="marquee"android:scrollHorizontally="true"android:marqueeRepeatLimit="marquee_forever"android:focusableInTouchMode="true"android:layout_gravity="center_vertical"/>
</LinearLayout>

布局很简单,可能有同学对跑马灯效果不了解,简单介绍下跑马灯属性

android:ellipsize=”marquee” //文字显示不全时剩余文字通过什么方式显示
android:scrollHorizontally=”true” //设置滚动方式为横向滚动
android:marqueeRepeatLimit=”marquee_forever” //设置滚动模式为forever
android:focusableInTouchMode=”true” //设置点击模式下拥有焦点 因为没焦点跑不起来
android:focusable=”true” //设置拥有焦点

3、直接上Activity代码

(1)初始化

private void init() {ImageView imgIcon=findViewById(R.id.img_icon);tvText = findViewById(R.id.tv_text);imgIcon.setOnClickListener(this);//获取屏幕密度float density = getResources().getDisplayMetrics().density;//dp to px   200dptextWidth = (int) (density * 200 + 0.5);}

(2)设置点击事件

 @Overridepublic void onClick(View view) {createAnimator(tvText,tvText.getWidth(),0);if (isExpanded){close(tvText);isExpanded=false;}else {open(tvText);isExpanded=true;}}

通过isExpanded 布尔值控制通知栏开关,关闭状态点击展开,开启状态,点击关闭,同时修改布尔值

(3)开关通知栏方法

/*** 打开通知*/private void open(View view) {view.setVisibility(View.VISIBLE);ValueAnimator valueAnimator=createAnimator(view,0,textWidth);valueAnimator.start();}
  /*** 关闭通知*/private void close(final View view) {int width=view.getWidth();ValueAnimator valueAnimator=createAnimator(view,width,0);valueAnimator.addListener(new AnimatorListenerAdapter() {@Overridepublic void onAnimationEnd(Animator animation) {view.setVisibility(View.GONE);}});valueAnimator.start();}

动画执行完毕,隐藏消息文字

 /*** 设置动画* @param view* @param start* @param end* @return*/private ValueAnimator createAnimator(final View view, int start, int end) {ValueAnimator valueAnimator=ValueAnimator.ofInt(start,end);valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {@Overridepublic void onAnimationUpdate(ValueAnimator valueAnimator) {int value=(Integer) valueAnimator.getAnimatedValue();ViewGroup.LayoutParams layoutParams=view.getLayoutParams();layoutParams.width=value;view.setLayoutParams(layoutParams);}});return valueAnimator;}

通过属性动画监听动画改变来控制消息栏文字宽度,OK啦

仿小黄车头部滚动消息动画相关推荐

  1. 仿小黄车android定位,ofo与mobike越来越像 高端版小黄车已增加定位功能

    [TechWeb报道]12月5日消息,ofo在上个月的发布会上公布了与700Bike合作的消息,ofo创始人戴威在11月17日的发布会上卖了个小关子,并没有透露与700Bike的具体合作形态,不过近日 ...

  2. 仿小黄车android定位,小黄车ofo是怎么实现自行车定位功能的?

    摩拜单车通过车身携带的GPS而实现单车定位,但是我们知道ofo是没有安装GPS,它又是如何实现单车定位的呢? 我居住的地方距离地铁站步行大约15分钟左右,距离最近的商场步行将近30分钟,距离周边的便利 ...

  3. 仿小黄车android定位,ofo小黄车是怎么定位的 ofo共享单车如何定位

    ofo小黄车是怎么定位的? 摩拜单车通过车身携带的GPS而实现单车定位,但是我们知道ofo是没有安装GPS,它又是如何实现单车定位的呢? 我居住的地方距离地铁站步行大约15分钟左右,距离最近的商场步行 ...

  4. 淘宝、抖快在前,B站直播带货的“小黄车”剑指何方?

    近一个月中,B站可谓赚足了一波热度. · 11月19日,B站以6亿元高价收购原创漫画网有妖气:同日,以1.18亿元购入甬易支付65.5%的股权,B站如愿以偿拿到获得支付牌照: · 11月29日,B站与 ...

  5. 消失的2000万辆小黄车去哪儿了?

    在过去几个月,ofo及经营主体东峡大通频频爆出"新闻":在全国企业破产重整案件信息网上"被申请", 被法院作出"限制消费令"及被列为失信被执 ...

  6. 黄蓝专场之 | ofo小黄车的执念与博弈

    文章来源:新浪科技 ID:techsina 内容经授权发布 20多天前,ofo小黄车CEO戴威现身北大光华论坛.在近15分钟的演讲中,这位身披红巾.意气风发的90后师兄,与在场近千名学子分享了&quo ...

  7. 艾媒:ofo用户份额领先摩拜超六成 每10辆共享单车7辆小黄车

    经过一年多的"彩虹大战",共享单车市场格局渐趋固化.ofo和摩拜组成的第一集团笑傲市场,第二集团追赶无望,并渐渐远离一二线核心城市.随着共享下半场竞争的开启,头部两强的榜首之争成为 ...

  8. 出海日报|巴西电动滑板车Grin与“巴西小黄车” Yellow合并了;印度OYO Rooms要花5000万美元发展菲律宾市场...

    大公司 Grab 1.35亿美元建新总部大楼 路透社讯,Grab 与新加坡商业园区 Ascendas Real Estate Investment Trust 签署协议,公司斥资1.345亿美元委托后 ...

  9. ofo小黄车仍在自动续费!如何关闭微信自动扣费?

    刚看到一个热搜:ofo小黄车仍在自动续费???? 据北京日报消息:几天前,周女士的微信账户突然被扣了52元钱,莫名其妙的她查来查去,发现竟然是ofo季卡在自动续费.这款扣得让周女士哭笑不得. 这消息让 ...

最新文章

  1. OpenCV自适应阈值化函数adaptiveThreshold详解,并附实例源码
  2. 将用户名保存至cookie中
  3. linux mem设备是什么,linux下/dev/mem分析
  4. MLFlow︱机器学习工作流框架:MLFlow docker 实践(二)
  5. 【更新】Essential Studio for ASP.NET MVC更新至2018 v4(三)
  6. oe7 安装财务模块后,科目表没有导入成功
  7. 电脑桌面隐藏文件如何恢复出来呢
  8. 一些收藏默认网站后缀
  9. html手机端最小字体,移动端最小字体限制测试
  10. Android以太网框架情景分析之NetworkManagementService和netd交互深入分析二
  11. 通过淘宝司法拍卖购买房子,需要注意些什么?
  12. 搜狗输入法不能正常使用?
  13. 如何让win10超时自动锁定屏幕?
  14. 21天好习惯第一期-3
  15. 记京东Java开发实习生一面
  16. 高校计算机信息技术基础知识,大学信息技术(计算机基础)练习题(专科、本科).PDF...
  17. vnc viewer中文版,3步下载vnc viewer中文版
  18. 每日资源分享(彩虹外链PHP网盘V5.4更新 新增用户系统与分块上传)
  19. Spring Validation最佳实践
  20. python画菱形的代码_题目:python 打印出如下图案(菱形):

热门文章

  1. django on jython
  2. WeakHashMap总结
  3. mysql设置general-log_设置mysql的general log
  4. 谷歌浏览器自动记住密码,解决问题?
  5. 微软发布 2023 财年第一季度财报:营收达 501 亿美元,同比增长 11%
  6. 0. Google机器学习(ML)课程---简介
  7. 启动计算机时会出现什么,为什么电脑启动的时候会出现很多英文字母?
  8. 有没有大佬帮帮我哦,看不懂这个题欸
  9. [亲测有效] Cannot find module @babel/compat-data/corejs3-shipped-proposals
  10. 机器学习基础问题1|欠拟合与过拟合