package com.zzw.qunyingzhuan2;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View; /**
* Created by zzw on 2016/7/11.
* 描述:
*/
public class VoiceBarView extends View {
private int mRectCount = 10;
private int offset = 20;
private int mWidth;
private int mRectHeight;
private int mRectWidth;
private LinearGradient mLinearGradient; private Paint paint; public VoiceBarView(Context context) {
this(context, null);
} public VoiceBarView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr); paint = new Paint();
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GRAY);
} public VoiceBarView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
} @Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for (int i = 0; i < mRectCount; i++) {
float currentHeight = (float) (Math.random() * mRectHeight);
float left = (float) (mWidth * 0.2 + mRectWidth * i + offset);
float top = currentHeight;
float right = (float) (mWidth * 0.2 + mRectWidth * (i + 1));
// float right = left + mRectWidth;
float bottom = mRectHeight;
canvas.drawRect(left, top, right, bottom, paint);
}
postInvalidateDelayed(300);
} @Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mWidth = getWidth();
mRectHeight = getHeight();
mRectWidth = (int) (mWidth * 0.6 / mRectCount);
mLinearGradient = new LinearGradient(0, 0, mRectWidth, mRectHeight, Color.YELLOW, Color.BLUE, Shader.TileMode.CLAMP);
paint.setShader(mLinearGradient);
}
}

自定义音频条形图--p52的更多相关文章

  1. Android自定义View之音频条形图

    2016-04-12 17:52 76人阅读 评论(2) 收藏 举报  分类: Android(26)  版权声明:本文为博主原创文章,未经博主允许不得转载. 新建项目,新建MusicRectangl ...

  2. 微信小程序自定义音频组件,自定义滚动条,单曲循环,循环播放

    小程序自定义音频组件,带滚动条 摘要:首先自定义音频组件,是因为产品有这样的需求,需要如下样式的 而微信小程序API给我们提供的就是这样的 而且产品需要小程序有后台播放功能,所以我们不考虑小程序的 a ...

  3. h5自定义audio(问题及解决)

    h5活动需要插入音频,但又需要自定义样式,于是自己写咯 html <!-- cur表示当前时间 max表示总时长 input表示进度条 --> <span class='cur'&g ...

  4. Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件

    原文 Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件 第21部分:永久保存Wav音频文件 原文地址:http://channel9.msdn.com/Series/Win ...

  5. 使用Core Audio实现VoIP通用音频模块

    最近一直在做iOS音频技术相关的项目,由于单项直播SDK,互动直播SDK(iOS/Mac),短视频SDK,都会用到音频技术,因此在这里收集三个SDK的音频技术需求,开发一个通用的音频模块用于三个SDK ...

  6. ubuntu中文实训手册

    http://people.ubuntu.com/~happyaron/udc-cn/lucid-html/ http://www.apachefriends.org/zh_cn/xampp-linu ...

  7. HoloLens开发手记 - 语音输入 Voice input

    语音是HoloLens三大重要输入形式之一.它允许你直接通过语言控制全息图像,而不用借助手势.你只要凝视全息图像然后说出语音命令即可.语音输入是自然的交互方式,它能够很好的改善复杂的交互,因为通过一条 ...

  8. 初识 Premiere

    本记录基于Premiere Pro CC 2015.3,编号不连贯,以视频编号为准,对应视频没有有用信息的没有记录. 1.3 基本工作界面和预设工作区 将面板独立出来:按住Ctrl拖动窗口 将关闭的面 ...

  9. AVFoundation Programming Guide(官方文档翻译4)Editing - 编辑

    新博客:完整版 - AVFoundation Programming Guide 分章节版:- 第1章:About AVFoundation - AVFoundation概述- 第2章:Using A ...

随机推荐

  1. mysql 关于join的总结

    本文地址:http://www.cnblogs.com/qiaoyihang/p/6401280.html mysql不支持Full join,不过可以通过UNION 关键字来合并 LEFT JOIN ...

  2. C#实现对图片文件的压缩、裁剪操作实例

    本文实例讲述了C#对图片文件的压缩.裁剪操作方法,在C#项目开发中非常有实用价值.分享给大家供大家参考.具体如下: 一般在做项目时,对图片的处理,以前都采用在上传时,限制其大小的方式,这样带来诸多不便 ...

  3. loadrunner winsocket sent buffer 乱码

    data.ws里手写的xml参数,调试脚本时一直显示乱码,解决方法如下: tools-recording options--sockets--winsock下: EBCID--translation ...

  4. 小知识:pyhon的作用域

    http://www.cnblogs.com/wupeiqi/p/5649402.html    五句话搞定JavaScript作用域 从JavaScript  == pyhon 作用域几乎一致 __ ...

  5. HDU - 6395 Sequence (分块+快速矩阵幂)

    给定递推式: 求Fn. 分析:给出的公式可以用快速矩阵幂运算得到,但 P/n 整除对于不同的i,值是不同的. 可以根据P将3-n分成若干块,每块中P整除n的值是相同的.分块的时候要注意判断. 将每块的 ...

  6. CodeForces - 786B Legacy (线段树+DIjkstra+思维)

    题意:给N个点和Q条选项,有三种类型的选项:1.从u到v花费w修建一条路:2.从u到下标区间为[L,R]的点花费w修建一条路; 3.从下标区间为[L,R]的点到u花费w修建一条路. 然后求起点s到其余 ...

  7. gh-ost测试

    gh-ost测试 1.不支持没有主键或者唯一索引的表 2018-08-24 09:53:33 FATAL No PRIMARY nor UNIQUE key found in table! Baili ...

  8. How to create a notification with NotificationCompat.Builder?AAAA

    Ask Question up vote 49 down vote favorite 19 I need to create a simple notification which will be s ...

  9. 在U盘上安装Damn Small Linux

    Damn Small Linux 是一个袖珍Linux发行版,整个系统只有50M左右,所以可以放到U盘中,从而可以在支持U盘启动的电脑上使用Linux,功能与LiveCD相当.   有很多种方法可以将 ...

  10. Python3.x:pyodbc调用sybase的存储过程

    Python3.x:pyodbc调用sybase的存储过程 示例代码 # python3 # author lizm # datetime 2018-03-02 17:00:00 # -*- codi ...