Android实现卡拉OK字幕效果方法
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字幕效果方法相关推荐
- 卡拉OK字幕效果制作
就简单实现一下卡拉OK的字幕效果 * 字的颜色变化是线性变化,即随时间的线性变化 而不是按字的单位变颜色的 所以有时候是字的一部分变颜色 主要代码实现如下: Graphics g = pea.Gra ...
- PR制作卡拉OK字幕效果(虎课网)
重点:裁剪工具的使用 难点:视频轨道的调整 1.新建项目,将素材拖入,选中视频右键-从剪辑新建序列.视频本身带有音频,但是没有声音,选中序列右键-取消链接,然后将音频删除.此时将素材中的音频放入A1轨 ...
- android炫酷的动画效果
这段时间看到一些比较好看的android动画效果,下面我就给大家一些我比较喜欢的动画效果,并附上源码希望对你们有用处. 1.很简单却很酷的粒子破碎效果 介绍: 实现思路 1.新建一个 Bean Pa ...
- MFC开发——卡拉OK字幕制作
依然是为了赶老师作业,又去学了点东西,然后做了个小项目.首先在开始做项目之前,说一下整体思路,要实现卡拉OK字幕效果,就要对文本类与定时器有一定的掌握,通过定时器的更新,可以实现字体颜色的变化,与字幕 ...
- 用小灰熊做卡拉OK字幕
发表时间:2007-1-31 阅读次数:662 1.制作歌词脚本文件 在进行歌曲卡拉OK字幕制作工作之前,我们先用文本编辑软件,如记事本程序将<会有那么一天>歌曲的歌词文件编辑好 ...
- VC实现卡拉OK字幕叠加
一. GDI编程基础 字幕叠加,应当是属于图形.图像处理的范畴.在Windows平台上,图形.图像处理的方法当然首选GDI(Graphics Device Interface,图形设备接口).GDI是 ...
- 制作卡拉OK字幕KSC文件
制作卡拉OK字幕KSC文件 1.制作歌词脚本文件 在进行歌曲卡拉OK字幕制作工作之前,我们先用文本编辑软件,如记事本程序将歌曲的歌词文件编辑好,行与行之间不要留空行 ...
- 小灰熊卡拉OK字幕使用教程
1.1 什么是KBuilder3.5 KBuilder 是"小灰熊卡拉OK字幕设计工具"的主程序,通过视频非线性编辑软件 Adobe Premiere.Sony Vegas 等将其 ...
- 小灰熊卡拉OK字幕设计工具KBuilder 3.5 使用说明
小灰熊卡拉OK字幕设计工具KBuilder 3.5 使用说明 导读: 一.什么是 KBuilder 二. KBuilder3.5 的新功能 三. KBuilder3.5 的安装 四.卡拉OK歌词脚 ...
最新文章
- Examples osgparticleshader例子学习
- ROS单内网服务器源IP限速\单个下载链接限速
- 能在微软的网站找到IeWebcontrols的安装文件吗
- 【初码干货】关于.NET玩爬虫这些事
- java aio复制文件_java复制文件的4种方式及拷贝文件到另一个目录下的实例代码...
- Angular之ngx-permissions的路由使用
- 请解释自动装配模式的区别?_如何从齿条优化方面有效节约机床装配时间
- UIColor与十六进制字符串互转
- 浏览器插件---Tampermonkey油猴
- [转]深入理解C/C++ [Deep C (and C++)]
- stream常用list转map list转list
- 百度支持nofollow是百度的进步
- u盘计算机软件,USBoot(U盘启动盘制作工具)
- 居民身份证号码的含义
- 三极管导通条件与电位关系
- reg型变量怎么赋值_FPGA的wire和reg类型变量
- ubuntu新硬盘创建分区步骤
- 【理解】ORB特征提取与ORBSLAM特征匹配简要剖析
- 块存储、文件存储和对象存储三者的区别
- js中replace函数的使用