Android中TextView实现垂直滚动和上下滚动效果

发布时间 - 2026-01-11 00:43:39    点击率:

布局里面就是两个自定义的TextView,上面的左右滑动的是AutoHorizontalScrollTextView;

下面上下滚动的是AutoVerticalScrollTextView;

上面左右滑动的非常好实现,直接把AutoHorizontalScrollTextView复制到项目中,复制全类名到布局文件中,和系统TextView一样,只需设置文本其他什么都不用设置;

下面垂直滚动的AutoVerticalScrollTextView相比AutoHorizontalScrollTextView稍微麻烦一点;但是也非常简单;

如果在项目中使用的话直接把AutoVerticalScrollTextView复制到项目中;

有些属性在布局文件中没有办法设置,需要在makeView()方法中设置:现在这个字体是白色的,如果不需要去掉

//这里返回的TextView,就是我们看到的View,可以设置自己想要的效果 
 public View makeView() { 
  TextView textView = new TextView(mContext); 
  textView.setGravity(Gravity.LEFT); 
  textView.setTextSize(20); 
  textView.setSingleLine(true); 
  textView.setGravity(Gravity.CENTER_VERTICAL); 
  textView.setEllipsize(TextUtils.TruncateAt.END); 
  textView.setTextColor(Color.WHITE); 
  return textView; 
 } 

接下来看下布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 android:orientation="vertical"> 
 <!--左右滚动的textview--> 
 <www.autotextview.com.autotextview.View.AutoHorizontalScrollTextView 
  android:textSize="20sp" 
  android:background="#000000" 
  android:textColor="#ffffff" 
  android:id="@+id/textview" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:singleLine="true" 
  /> 
 <!--上下滚动的TextView--> 
 <www.autotextview.com.autotextview.View.AutoVerticalScrollTextView 
  android:id="@+id/textview_auto_roll" 
  android:layout_width="match_parent" 
  android:layout_height="wrap_content" 
  android:background="#000000" 
  android:padding="5dp" 
  /> 
</LinearLayout> 

布局文件就非常简单了,接下来说下两个View具体怎么使用:

左右滚动的TextView,直接设置一个TextView即可;

horizontalScrollTV = (AutoHorizontalScrollTextView) findViewById(R.id.textview); 
  horizontalScrollTV.setText(titleStr); 

而垂直滚动的TextView需要的是一个数组,当执行next()方法的时候会执行动画切换下一个数据;
在项目中我直接定义了一个计时器,每隔2秒发送一个消息,然后执行AutoVerTicalScrollTextView.next();

private String[] strings={"我的剑,就是你的剑!","俺也是从石头里蹦出来得!","我用双手成就你的梦想!","人在塔在!","犯我德邦者,虽远必诛!","我会让你看看什么叫残忍!","我的大刀早已饥渴难耐了!"}; 
  verticalScrollTV = (AutoVerticalScrollTextView) findViewById(R.id.textview_auto_roll); 
  verticalScrollTV.setText(strings[0]); 
  new Thread(){ 
   @Override 
   public void run() { 
    while (isRunning){ 
     SystemClock.sleep(3000); 
     handler.sendEmptyMessage(199); 
    } 
   } 
  }.start(); 
private Handler handler = new Handler() { 
  public void handleMessage(Message msg) { 
   if (msg.what == 199) { 
    verticalScrollTV.next(); 
    number++; 
    verticalScrollTV.setText(strings[number%strings.length]); 
   } 
  } 
 }; 

点击事件是后期加上去的,在MainActivity的initView()方法中添加以下代码:

verticalScrollTV.setOnClickListener(new View.OnClickListener() { 
   @Override 
   public void onClick(View v) { 
    Toast.makeText(MainActivity.this,strings[number%strings.length],Toast.LENGTH_SHORT).show(); 
   } 
  }); 

以上所述是小编给大家介绍的Android中TextView实现垂直滚动效和上下滚动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # textview垂直滚动  # textview上下滚动  # Android中TextView实现分段显示不同颜色的字符串  # Android中TextView显示圆圈背景或设置圆角的方法  # Android TextView实现多文本折叠、展开效果  # Android textview 实现长按自由选择复制功能的方法  # Android中使用TextView实现文字跑马灯效果  # Android实现可收缩和扩展的TextView  # 浅析Android TextView常用属性  # 的是  # 小编  # 让你  # 我会  # 在此  # 不需要  # 只需  # 计时器  # 是从  # 我用  # 给大家  # 自定义  # 非常好  # 没有办法  # 什么叫  # 每隔  # 所述  # 给我留言  # 感谢大家  # 蹦出 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在云主机上快速搭建多站点网站?  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Laravel如何使用Gate和Policy进行授权?(权限控制)  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  Android 常见的图片加载框架详细介绍  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  如何在腾讯云免费申请建站?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  简单实现Android验证码  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  网站优化排名时,需要考虑哪些问题呢?  清除minerd进程的简单方法  创业网站制作流程,创业网站可靠吗?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  微信公众帐号开发教程之图文消息全攻略  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  如何在阿里云高效完成企业建站全流程?  详解vue.js组件化开发实践  Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】  bootstrap日历插件datetimepicker使用方法  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】  怎么用AI帮你为初创公司进行市场定位分析?  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何利用DOS批处理实现定时关机操作详解  网页设计与网站制作内容,怎样注册网站?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  如何挑选优质建站一级代理提升网站排名?  Mybatis 中的insertOrUpdate操作  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  香港服务器WordPress建站指南:SEO优化与高效部署策略  在线教育网站制作平台,山西立德教育官网?  香港服务器如何优化才能显著提升网站加载速度?  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  怎样使用JSON进行数据交换_它有什么限制  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  原生JS获取元素集合的子元素宽度实例  Python进程池调度策略_任务分发说明【指导】  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议