android文字上下左右翻滚_自定义垂直滚动TextView-跑马灯【Android】

20岁的金钱观,决定你30岁的生活品质!

72dcd259f21c473107b06fc51f310f92.png

往往在实际开发当中,需要开发者实现水平滚动或垂直滚动,水平滚动其实很简单,只需要使用跑马灯效果即可【Android】不一样的TextView(一)水平滚动-跑马灯,但是如果是要实现垂直滚动该如何实现呢?

分析:对于一个垂直滚动效果,综合分析一下,无外乎以下几个问题需要处理?

1、文本使用什么控件显示?

2、如果实现上下滚动效果?

3、如何处理文本变化?

4、如何处理无限滚动的效果?

一、文本使用什么控件显示?

文本的显示当然是使用TextView进行显示,但是因为控件上的文本是不断变化的,而且是要实现上下滚动的效果,所以这里的处理是使用一组TextView显示不同文本,上下滚动的动画效果就有这一组TextView实现。

二、如果实现上下滚动效果?

上下滚动效果,使用Animation动画实现,这里要实现特定的效果,所以需要自定义Animation动画,进行translate变换,采用这个变换实现进入和退出的效果。

private class Rotate3dAnimation extends Animation {

private float mCenterX;

private float mCenterY;

private final boolean mTurnIn;

private final boolean mTurnUp;

private Camera mCamera;// 用来保存初始Camera

Rotate3dAnimation(booleanturnIn, booleanturnUp) {

mTurnIn= turnIn;

mTurnUp= turnUp;

}

@Override

public void initialize(intwidth, intheight, intparentWidth, intparentHeight) {

super.initialize(width,height,parentWidth,parentHeight);

// 用来记录,初始Camera高度 宽度

mCamera=newCamera();

mCenterY= getHeight();

mCenterX= getWidth();

}

/**

* interpolatedTime 0~1

* t转换

*/

@Override

protected void applyTransformation(float interpolatedTime,Transformation t) {

final floatce

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,可以通过设置TextView的一些属性来实现跑马灯效果。其中包括设置ellipsize属性为marquee,marqueeRepeatLimit属性为marquee_forever,focusable属性为true,singleLine属性为true等。通过这些属性的设置,可以让TextView文字在有限的宽度下实现跑马灯效果,让用户完整地看到所有的文字。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android——TextView实现真正的跑马灯效果](https://blog.csdn.net/u013836857/article/details/51423393)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Android TextView设置跑马灯效果](https://blog.csdn.net/qq_43278826/article/details/122668992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Android三种方式实现TextView跑马灯效果](https://blog.csdn.net/qq_26440221/article/details/52621302)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值