iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android自定义控件实现UC浏览器语音搜索效果
  • 661
分享到

Android自定义控件实现UC浏览器语音搜索效果

android语音搜索 2023-05-31 05:05:11 661人浏览 安东尼
摘要

 最近项目上要实现语音搜索功能,界面样式要模仿一下UC浏览器的样式,UC浏览器中有一个控件,会随着声音大小浮动,然后寻思偷个懒,百度一下,结果也没有找到类似的,只能自己动手了。先上图看我实现的效果:这是自定义控件的代码,里面注释也

 最近项目上要实现语音搜索功能,界面样式要模仿一下UC浏览器的样式,UC浏览器中有一个控件,会随着声音大小浮动,然后寻思偷个懒,百度一下,结果也没有找到类似的,只能自己动手了。

先上图看我实现的效果:

Android自定义控件实现UC浏览器语音搜索效果

这是自定义控件的代码,里面注释也很明白,就不费话了

public class CustomCircleView extends View{  private Paint mPaint;  private int strokeWidth = 0;   //圆环的宽度  private Bitmap bitmap = null;  // 图片位图  private int nBitmapWidth = 0;  // 图片的宽度  private int nBitmapHeight = 0; // 图片的高度  private int width;     //view的宽度  private int height ;    //view的高度  private int biGCircleColor =0;    //view的高度  private int floatCircleColor =0;    //view的高度  public CustomCircleView(Context context) {    this(context, null);  }  public CustomCircleView(Context context, AttributeSet attrs) {    this(context, attrs, 0);  }  public CustomCircleView(Context context, AttributeSet attrs, int defStyleAttr) {    super(context, attrs, defStyleAttr);    TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.CustomCircleView, defStyleAttr, 0);    int n = a.getIndexCount();    for (int i = 0; i < n; i++)    {      int attr = a.getIndex(i);      switch (attr)      {        case R.styleable.CustomCircleView_icon:          bitmap = BitmapFactory.decodeResource(getResources(), a.getResourceId(attr, 0));          break;        case R.styleable.CustomCircleView_bigCircleColor:          bigCircleColor = a.getColor(attr, Color.GRAY);          break;        case R.styleable.CustomCircleView_floatCircleColor:          floatCircleColor = a.getColor(attr,Color.GREEN);          break;      }    }    a.recycle();    mPaint = new Paint();    //如果布局中没有设置bigCircleColor和floatCircleColor的时候给他一个默认值    if (bigCircleColor==0){      bigCircleColor=Color.parseColor("#FFEEF0F1");    }    if (floatCircleColor==0){      floatCircleColor=Color.parseColor("#25c1f5");    }    // 获取图片高度和宽度    nBitmapWidth = bitmap.getWidth();    nBitmapHeight = bitmap.getHeight();  }  @Override  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {    int widthMode = MeasureSpec.getMode(widthMeasureSpec);    int widthSize = MeasureSpec.getSize(widthMeasureSpec);    int heightMode = MeasureSpec.getMode(heightMeasureSpec);    int heightSize = MeasureSpec.getSize(heightMeasureSpec);    //获取view的高度和宽度 这个view必须给精确值!!!!!!!!    if (widthMode == MeasureSpec.EXACTLY) {      width = widthSize;    }    if (heightMode == MeasureSpec.EXACTLY)    {      height = heightSize;    }    setMeasuredDimension(width, height);  }  @Override  protected void onDraw(canvas canvas) {    super.onDraw(canvas);    mPaint.setAntiAlias(true); // 消除锯齿    //绘制最外层灰色大圆    mPaint.setColor(bigCircleColor);    mPaint.setStyle(Paint.Style.STROKE);    mPaint.setStrokeWidth(height/2-nBitmapHeight/2);    //计算圆的半径稍微麻烦点,但是在图上画一下应该能明白 (height/2-nBitmapHeight/2)/2+nBitmapHeight/2    canvas.drawCircle(width/2, height/2, (height/2-nBitmapHeight/2)/2+nBitmapHeight/2, mPaint);    //绘制浮动的圆    mPaint.setColor(floatCircleColor);    mPaint.setStyle(Paint.Style.STROKE);    mPaint.setStrokeWidth(strokeWidth);    canvas.drawCircle(width/2, height/2, strokeWidth/2+nBitmapHeight/2, mPaint);    //绘制中间图标    canvas.drawBitmap(bitmap, width/2-nBitmapWidth/2, height/2-nBitmapHeight/2, mPaint);  }  //根据传入的宽度重新绘制  public void setStrokeWidth(int with){    this.strokeWidth=with;    invalidate();  }}

--结束END--

本文标题: Android自定义控件实现UC浏览器语音搜索效果

本文链接: https://www.lsjlt.com/news/223712.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android自定义控件实现UC浏览器语音搜索效果
     最近项目上要实现语音搜索功能,界面样式要模仿一下UC浏览器的样式,UC浏览器中有一个控件,会随着声音大小浮动,然后寻思偷个懒,百度一下,结果也没有找到类似的,只能自己动手了。先上图看我实现的效果:这是自定义控件的代码,里面注释也...
    99+
    2023-05-31
    android 语音 搜索
  • Android自定义控件实现雷达图效果
    本文实例为大家分享了Android自定义控件实现雷达图的具体代码,供大家参考,具体内容如下 学习了大神的源代码(奈何不知大神的博客地址),觉得必须记录一下,方便以后再次学习。 效果如...
    99+
    2024-04-02
  • 基于Android自定义控件实现雷达效果
    如何制作出类似雷达扫描的效果,具体方法如下一、效果图二、实现思路 自定义控件RadarView用来画雷达的效果图,可以自定义属性包括 backgroundColor:背景颜色 circleNum:圆的数量 startColor:开始颜色 e...
    99+
    2023-05-30
    android 雷达 roi
  • Android自定义控件实现简单滑动开关效果
    本文实例为大家分享了Android自定义控件实现简单滑动开关的具体代码,供大家参考,具体内容如下 ToggleButton 滑动开关 项目概述 滑动开关是一个纯粹的自定义控件,上面的...
    99+
    2024-04-02
  • Android中怎么通过自定义RecyclerView控件实现Gallery效果
    这期内容当中小编将会给大家带来有关Android中怎么通过自定义RecyclerView控件实现Gallery效果,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、RecyclerView的基本用法首先主...
    99+
    2023-05-30
    android recyclerview gallery
  • C# WPF实现的语音播放自定义控件
    目录主界面xaml控件设计XAML控件CS代码原理很简单,利用Path画一个图,然后用动画进行播放,播放时间由依赖属性输入赋值与控件内部维护的一个计时器进行控制。 控件基本是玩具,无...
    99+
    2024-04-02
  • Android中怎么通过自定义控件实现下拉刷新效果
    本篇文章给大家分享的是有关Android中怎么通过自定义控件实现下拉刷新效果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。@Override  protec...
    99+
    2023-05-30
    android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作