Android 中的滚动字幕文本

2023-12-06

我需要制作一个制作人员名单(Activity)在我的游戏中。它只是垂直滚动的文本行,没有任何图像。滚动将自动执行,不允许用户交互。就像从下到上的电影片尾一样。最后一个文本行消失在屏幕顶部上方后,它应该重新启动。

我该怎么做?只需使用就足够了TextView并以某种方式使其动画化?或者我应该这样说TextView into ScrollView?你有什么建议?


我正在使用这个:-

    /**
 * A TextView that scrolls it contents across the screen, in a similar fashion as movie credits roll
 * across the theater screen.
 *
 * @author Matthias Kaeppler
 */
public class ScrollingTextView extends TextView implements Runnable {

    private static final float DEFAULT_SPEED = 15.0f;

    private Scroller scroller;
    private float speed = DEFAULT_SPEED;
    private boolean continuousScrolling = true;

    public ScrollingTextView(Context context) {
        super(context);
        setup(context);
    }

    public ScrollingTextView(Context context, AttributeSet attributes) {
        super(context, attributes);
        setup(context);
    }

    private void setup(Context context) {
        scroller = new Scroller(context, new LinearInterpolator());
        setScroller(scroller);
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        if (scroller.isFinished()) {
            scroll();
        }
    }

    private void scroll() {
        int viewHeight = getHeight();
        int visibleHeight = viewHeight - getPaddingBottom() - getPaddingTop();
        int lineHeight = getLineHeight();

        int offset = -1 * visibleHeight;
        int totallineHeight = getLineCount() * lineHeight;
        int distance = totallineHeight + visibleHeight;
        int duration = (int) (distance * speed);

        if (totallineHeight > visibleHeight) {
            scroller.startScroll(0, offset, 0, distance, duration);

            if (continuousScrolling) {
                post(this);
            }
        }
    }

    @Override
    public void run() {
        if (scroller.isFinished()) {
            scroll();
        } else {
            post(this);
        }
    }

    public void setSpeed(float speed) {
        this.speed = speed;
    }

    public float getSpeed() {
        return speed;
    }

    public void setContinuousScrolling(boolean continuousScrolling) {
        this.continuousScrolling = continuousScrolling;
    }

    public boolean isContinuousScrolling() {
        return continuousScrolling;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中的滚动字幕文本 的相关文章

  • 位图背景图像应支持哪些屏幕尺寸/密度组合?

    我正在编写一个应用程序 我需要一些全屏位图背景 基于我天真的阅读支持多屏 http developer android com guide practices screens support html在 Android 文档中 为了涵盖我的
  • PopupWindow onitemclick 中的 Android Listview 在某些设备上不起作用

    我的 ListView 在 PopupWindow 内 当我显示 PopupWindow 并单击设备 ASUS K00z 中的 Listview 行时 fonepad 工作得很好 但在 HTC Z715e 中不起作用 项目单击事件未触发 1
  • Facebook4j API:搜索

    我正在使用 Facebook4j 通过关键字获取状态 facebook4j conf ConfigurationBuilder fac new facebook4j conf ConfigurationBuilder fac setDebu
  • putExtra() 和 setData() 之间的区别

    putExtra 和 setData 有什么区别 我已经阅读了 android 文档 但没有太大帮助 还有之前的一个问题Intent setData 与 Intent putExtra https stackoverflow com que
  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • 该项目可能使用的 Gradle 版本不包含“compileSdkVersion()”方法

    当我尝试运行最初在 Eclipse ADT 上创建的项目时 我遇到了这个问题 Error 17 0 Gradle DSL method not found compileSdkVersion Possible causes ul li Th
  • Blackberry - 自动滚动垂直字段管理器

    如何以编程方式沿特定方向滚动屏幕而不改变焦点 例如 当我们向下滚动到 FaceBook 应用程序中的 Feed 时 它会自动滚动屏幕以适合屏幕中央的所有文本 这可以在 Blackberry Java 开发中完成吗 谢谢 阿夫扎尔 如果出现以
  • Android volley使用RequestFuture.get()时出现超时异常

    在我的片段中 我尝试使用 TMDB 的开放电影数据库来获取有关 正在播放 电影的详细信息 如果我使用 RequestFuture get time TimeUnit 方法来执行此齐射请求 我总是会收到超时错误 如果我在 Safari 中手动
  • 数据未刷新“DynamiteModule:未找到 com.google.firebase.auth 的本地模块描述符类”

    我已经使用 Firebase 很长时间了 到目前为止 除了以下场景之外 一切都很好 有时我注意到我的应用程序不再获取新数据 我正在用一个活跃的监听器监听变化 并且我确实有keepSynced set to true 发生这种情况时 我会在日
  • 从 Android 访问云存储

    我一直无法找到任何有关如何从 Android 应用程序使用云存储的具体文档 我确实遇到过这个客户端库 https cloud google com storage docs reference libraries然而 Google Clou
  • phonegap html5 android 同步文件系统 IO

    如何使用 PhoneGaps 文件系统 API 同步读写文件 有可用的同步包装器吗 无法通过提供的 api 同步访问文件 从phonegap的实现方式猜测 我怀疑您是否可以编写一个插件来同步执行此操作
  • 将触摸事件从 NestedScrollView 传递到父视图

    我在 NestedScrollView 下方有一个 ViewPager 宽度一些顶部填充 以及 ClipToPadding false 和透明背景 如图像 我的 ViewPager 无法获取触摸事件并且无法工作 我怎么解决这个问题 我无法更
  • 如何关闭导航抽屉以使用返回主页图标按钮?

    我也将操作栏与搜索栏一起使用 并且我需要像后退按钮一样使用 ActionBar ico 但我也在使用导航抽屉 如何关闭 隐藏 禁用导航抽屉菜单以使用后退按钮 我的 ActionBar 代码 Override public boolean o
  • 通知操作而不启动新活动?

    我计划提供一个包含两个操作的提醒通知 一个用于批准登录请求 一个用于拒绝登录请求 通过单击这些操作中的任何一个 我希望向我的服务器发出 HTTP 请求 最重要的是 我不想启动新的 Activity 或根本不想将用户重定向到我的应用程序 Co
  • 可用屏幕的尺寸

    我使用的是 Nexus 7 1280x800 android 4 2 2 API 17 我想获取屏幕的大小 将其划分为相同高度和宽度的正方形部分 我正在使用 FrameLayout 我的方块是 ImageView 的子类 我这样做 cont
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • Android Studio 中自动打开“运行设备”选项卡

    在 Android Studio Flamingo 中有一个名为跑步设备并且它会在每次之后自动打开运行应用程序 有办法禁止这个自动打开吗 我尝试禁用启用物理 Android 设备的镜像选项 但选项卡仍然自动打开 基于此issue https
  • 如何减少 Android 中浮动 editText 提示和 editText 框之间的空间?

    我有一个带有浮动提示的 EditText 但我想知道如何减少浮动提示和 EditText 框之间的空间 现在我的用户界面看起来像https i stack imgur com ltfra jpg https i stack imgur co
  • Android 版本低于 Lollipop 时出现 java.lang.NoClassDefFoundError

    我有一台运行 Android 21 的 Nexus 5 设备 我正在测试我的项目 没有任何问题 但是 如果我使用 Google API 19 在模拟器上进行测试 则会显示错误java lang NoClassDefFoundError 如果

随机推荐

  • 创建唯一的日期序列

    假设我想生成一个数据框 其中包含一列 采用以下格式构造 2011 08 01 2011 08 02 2011 08 03 2011 08 04 我想知道是否可以使用以下方法生成这些数据seq 命令 类似以下内容 显然不起作用 seq 201
  • Java Web Start“找不到 URL 的缓存资源”

    在带有 JRE 7 update 21 的 Windows 7 和 8 两种情况下均为 32 位 下 我遇到了错误Cannot find cached resource for URL yyyyyyyyyyy jar对于在更新 21 之前在
  • 根据前一个页面的数据,动态地在表单中创建一个新页面。页

    我对 google apps script 中的表单有疑问 假设我已经创建了一个带有单页和文本输入框的表单 是否可以根据文本框中的数据动态创建后续页面 就像是 第一页 插入客户 ID gt 继续 gt 第二页 有关客户的信息 我知道有 on
  • 防火墙后面的 WCF 服务 – 如何设置端口转发?

    我刚刚开始接触 WCF 编程 我在我的工作计算机上设置了一个自托管测试 Web 服务 该计算机位于防火墙后面 它在http localhost 8000 MyTestService 我可以通过浏览器访问服务页面 一切正常 现在我想从位于不同
  • iPod Touch 4G 认为它是 iPad

    我构建了一个通用应用程序 可以在 iPad iPhone 4G 3GS 和 3G 上完美运行 但在 iPod Touch 4G 上运行时 它无法正常运行 我没有 iPod Touch 可供测试 但 Beta 测试人员告诉我 它可以很好地安装
  • 如何创建 Facebook 状态箭头文本框?

    如何获得像 Facebook Status TextBox 这样仅包含 html 和 css 的弯曲文本框 有人可以说明我该怎么做吗 我的跨浏览器 仅 CSS 版本的 Facebook 样式文本框 HOW TO 我用过 before在内部容
  • 使用 Scanner 类时如何忽略 .txt 的第一行

    我有一个文本文件 内容如下 Description SKU Retail Price Discount Tassimo T46 Home Brewing System 43 0439 6 17999 0 30 Moto Precise Fi
  • 数据框:单元格级别:将逗号分隔的字符串转换为列表

    我有一个 CSV 文件 其中包含有关汽车行程的信息 我想整理这些数据 以便为每个旅程 每一行 提供一个列表 该列表应包含作为列表中第一项的旅程代码 然后将所有后续 MGRS 单元作为单独的项目 最后 我希望将所有这些旅程列表分组到父列表中
  • 是否可以在 Azure 上运行 KVM

    Azure Fabric 似乎运行在 Hyper V 的定制版本上 是否可以在 Azure 上运行 KVM 虚拟化实例 使用嵌套虚拟化 我有一个基于 Debian 的自定义 VHD 比如说 根据本文档https learn microsof
  • 全屏背景视频?

    我想知道是否有人考虑过或遇到过任何现实的方法来为网站提供全出血背景视频 而不会导致网站速度非常慢 理想情况下我不想使用 Flash 我所说的全出血是指从屏幕的边缘到边缘 就像桌面壁纸一样 如果你不想要闪光灯那么尝试使用银光
  • 使用maven和jenkins,如何测试程序员是否做了一些测试用例?

    我正在开发许多项目 我们使用 Java Springs Maven 和 Jenkins 进行 CI 但我遇到了一些程序员没有向项目添加真正的 junit 测试用例的问题 我希望 maven 和 jenkins 在部署到服务器之前运行测试 一
  • 通过 Azure Functions 对 Azure AD 中的用户进行身份验证(验证用户名和密码)

    是否可以创建一个将用户名和密码作为输入参数的 Azure 函数 并且函数应该根据 Azure AD 验证用户 首先 值得一提的是 将 Azure AD 用户的用户名和密码作为应用程序 Azure 函数或 Web 应用程序或您正在开发的任何其
  • R中的线性回归无需复制内存中的数据?

    进行线性回归的标准方法是这样的 l lt lm Sepal Width Petal Length Petal Width data iris 然后使用predict l new data 进行预测 其中 new data 是一个数据帧 其列
  • 显示为对话框时,派生小部件不以父部件为中心

    我有一个从 QWidget 派生的类 MyListWidget 我将父级和标志传递给基类 QWidget 构造函数 在测试中尝试了 Qt Dialog 和 Qt Popup 但自定义小部件显示在屏幕中央 而不是以其父级为中心 MyListW
  • 在 JavaScript 中旋转后调整逻辑大小以保持固定角

    后面如何计算或者逻辑得到旋转后调整大小 用一个固定角 时平移 x 和 y 下图显示了基于角的调整大小与未旋转的 div 完美配合 rotate 0deg 我处理基于中心的旋转和调整大小没有任何问题 但问题是 我需要一个调整旋转 div 大小
  • Google Pub/Sub 推送消息不适用于启用 IAP 的应用程序引擎

    我正在测试一个非常基本的 Pub Sub 订阅 我将推送端点设置为通过 App Engine 中的 Python Flex 服务部署的应用程序 该服务位于启用了身份感知代理的项目中 IAP 配置为允许通过我们的域进行身份验证的用户通过 我没
  • 从 pandas 中特定列的 DF 中提取最大值、最小值或标准差

    我有一个包含 X1 Y1 Z3 列的 df df describe显示每列的统计信息 我想提取 Z3 列的最小值 最大值和标准差 df df z3 idxmax 似乎不起作用 熊猫的新功能0 20 0 pd DataFrame agg df
  • 通过 AWK 连接两个具有多列的文件

    首先 我必须道歉 我知道有很多不同的主题已经回答了我的问题 但是正如您自己所看到的 AWK 并不是我真正的好朋友 你们都知道这个故事 对吧 嘿 随机的员工 你是被选中的人 我需要你学习这个我们都不知道的奇怪的事情 你的截止日期是明天 祝你好
  • Docker 错误:映射卷中的 CSS 文件无法更新

    系统设置 Docker 版本 1 9 1 构建 a34a1d5 Oracle VirtualBox 4 3 34r104062 Image https hub docker com r rc42 flaskserver 当我在 Flask
  • Android 中的滚动字幕文本

    我需要制作一个制作人员名单 Activity 在我的游戏中 它只是垂直滚动的文本行 没有任何图像 滚动将自动执行 不允许用户交互 就像从下到上的电影片尾一样 最后一个文本行消失在屏幕顶部上方后 它应该重新启动 我该怎么做 只需使用就足够了T