1,使用两个TextView叠加实现,第一个全部长度,第二个长度是零,然后逐步增加;

<RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/tv1"style="@style/TEXT_MW"android:ellipsize="end"android:singleLine="true"android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"android:textColor="@color/green"android:textSize="@dimen/space40" /><TextViewandroid:id="@+id/tv2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ellipsize="end"android:singleLine="true"android:text="ABCDEFGHIJKLMNOPQRSTUVWXYZ"android:textColor="@color/red"android:textSize="@dimen/space40" />
</RelativeLayout>
2,自定义TextView,重写onDraw方法,使用Gradient实现,代码段如下:
protected void onDraw(Canvas canvas) {//super.onDraw(canvas);int length = (int) (getTextSize() * getText().length());// 得到整个歌曲的长度int newLength = length * linePosition / 255;float newP = newLength / length;float p = (newP == 0) ? 0 : (newP - 0.01F);Shader shader1 = null;if (linePosition > 0) {//shader1 = new LinearGradient(0, 0, newLength, 0, new int[]{Color.GREEN,  Color.RED}, new float[]{p, 1-p}, Shader.TileMode.CLAMP);} else {//shader1 = new LinearGradient(0, 0, length, 0, Color.RED, Color.RED, Shader.TileMode.CLAMP);}//shader1 = new LinearGradient(0, 0, newLength, 0, new int[]{Color.RED, Color.RED, Color.GREEN, Color.GREEN}, new float[]{0, p, newP, 1}, Shader.TileMode.CLAMP);//paint.setShader(shader1);shader1 = new LinearGradient(0, 0, newP, 0, new int[]{Color.RED, Color.RED}, null, Shader.TileMode.CLAMP);Shader shader2 = new LinearGradient(0, 0, length, 0, Color.GREEN, Color.GREEN, Shader.TileMode.CLAMP);Shader mComposeShader = new ComposeShader(shader1, shader2, PorterDuff.Mode.DST_OVER);paint.setShader(mComposeShader);canvas.drawText(getText().toString(), 0, getTextSize() - 10, paint);}




												

Android实现卡拉OK字幕效果方法相关推荐

  1. 卡拉OK字幕效果制作

    就简单实现一下卡拉OK的字幕效果 * 字的颜色变化是线性变化,即随时间的线性变化  而不是按字的单位变颜色的 所以有时候是字的一部分变颜色 主要代码实现如下: Graphics g = pea.Gra ...

  2. PR制作卡拉OK字幕效果(虎课网)

    重点:裁剪工具的使用 难点:视频轨道的调整 1.新建项目,将素材拖入,选中视频右键-从剪辑新建序列.视频本身带有音频,但是没有声音,选中序列右键-取消链接,然后将音频删除.此时将素材中的音频放入A1轨 ...

  3. android炫酷的动画效果

    这段时间看到一些比较好看的android动画效果,下面我就给大家一些我比较喜欢的动画效果,并附上源码希望对你们有用处. 1.很简单却很酷的粒子破碎效果 介绍:  实现思路 1.新建一个 Bean Pa ...

  4. MFC开发——卡拉OK字幕制作

    依然是为了赶老师作业,又去学了点东西,然后做了个小项目.首先在开始做项目之前,说一下整体思路,要实现卡拉OK字幕效果,就要对文本类与定时器有一定的掌握,通过定时器的更新,可以实现字体颜色的变化,与字幕 ...

  5. 用小灰熊做卡拉OK字幕

      发表时间:2007-1-31    阅读次数:662 1.制作歌词脚本文件 在进行歌曲卡拉OK字幕制作工作之前,我们先用文本编辑软件,如记事本程序将<会有那么一天>歌曲的歌词文件编辑好 ...

  6. VC实现卡拉OK字幕叠加

    一. GDI编程基础 字幕叠加,应当是属于图形.图像处理的范畴.在Windows平台上,图形.图像处理的方法当然首选GDI(Graphics Device Interface,图形设备接口).GDI是 ...

  7. 制作卡拉OK字幕KSC文件

    制作卡拉OK字幕KSC文件          1.制作歌词脚本文件          在进行歌曲卡拉OK字幕制作工作之前,我们先用文本编辑软件,如记事本程序将歌曲的歌词文件编辑好,行与行之间不要留空行 ...

  8. 小灰熊卡拉OK字幕使用教程

    1.1 什么是KBuilder3.5 KBuilder 是"小灰熊卡拉OK字幕设计工具"的主程序,通过视频非线性编辑软件 Adobe Premiere.Sony Vegas 等将其 ...

  9. 小灰熊卡拉OK字幕设计工具KBuilder 3.5 使用说明

    小灰熊卡拉OK字幕设计工具KBuilder 3.5 使用说明   导读: 一.什么是 KBuilder 二. KBuilder3.5 的新功能 三. KBuilder3.5 的安装 四.卡拉OK歌词脚 ...

最新文章

  1. Examples osgparticleshader例子学习
  2. ROS单内网服务器源IP限速\单个下载链接限速
  3. 能在微软的网站找到IeWebcontrols的安装文件吗
  4. 【初码干货】关于.NET玩爬虫这些事
  5. java aio复制文件_java复制文件的4种方式及拷贝文件到另一个目录下的实例代码...
  6. Angular之ngx-permissions的路由使用
  7. 请解释自动装配模式的区别?_如何从齿条优化方面有效节约机床装配时间
  8. UIColor与十六进制字符串互转
  9. 浏览器插件---Tampermonkey油猴
  10. [转]深入理解C/C++ [Deep C (and C++)]
  11. stream常用list转map list转list
  12. 百度支持nofollow是百度的进步
  13. u盘计算机软件,USBoot(U盘启动盘制作工具)
  14. 居民身份证号码的含义
  15. 三极管导通条件与电位关系
  16. reg型变量怎么赋值_FPGA的wire和reg类型变量
  17. ubuntu新硬盘创建分区步骤
  18. 【理解】ORB特征提取与ORBSLAM特征匹配简要剖析
  19. 块存储、文件存储和对象存储三者的区别
  20. js中replace函数的使用

热门文章

  1. 平面设计师必备设计资料总汇
  2. 金蝶显示无法创建kis服务器,金蝶kis新建账套未成功解决方案
  3. BPMN 2.0 快速使用文档
  4. DEA中创建父子工程与maven打包Springboot聚合工程报错程序包不存在
  5. jsp怎么操作html标签,JSP、HTML标签
  6. Carla设置同步模式
  7. 微信小程序 仿美团城市选择 城市切换
  8. 《安富莱嵌入式周报》第244期:2021.12.13--2021.12.19
  9. 远程桌面上如何打开本地打印机?
  10. WEB OF SCIENCE 中检索式的编写