举报不良网站信息怎么做网站开发 后端

diannao/2026/1/23 10:25:47/文章来源:
举报不良网站信息怎么做,网站开发 后端,个体工商户备案网站备案,wordpress招商加盟主题本文主要介绍的是一个球形水波的百分比控件#xff0c;市面上有各种形形色色的百分比控件#xff0c;我一直觉得水波是最炫的#xff0c;UI给了我这个机会#xff0c;然而网上搜了一大堆#xff0c;不是太复杂#xff0c;代码太多(反正我是调不出效果来)#xff0c;就是…本文主要介绍的是一个球形水波的百分比控件市面上有各种形形色色的百分比控件我一直觉得水波是最炫的UI给了我这个机会然而网上搜了一大堆不是太复杂代码太多(反正我是调不出效果来)就是有瑕疵的所以只好自己写了这里开源出来方便大家。有什么问题或者建议大家留言指出。先看效果这里动态图不好截取就贴张静态的对于水波百分比控件实现方法有如下几种- 画好水波形状的bitmap利用属性动画进行平移- 利用曲线精确绘制目标水波- 利用大范围曲线与容器做交集第一种比较烦网上有这种思路实现的代码量比较庞大。bitmap移动时要注意的问题很多一不小心就bug一堆了。第二种代码量小但需要几何功底。很丢脸的说我算了好久。才算出公式(年代久远都忘了)不过这种方法计算量大绘制时遍历的点少。第三种方法代码量极少计算量几乎没有遍历的点是第二种方法的两倍以上。考虑到遍历的消耗和计算的复杂度选择第三种。这里我们选择正弦曲线和圆做交集。for (int i left; i length; i) {int x i;int y (int) (Math.sin(Math.toRadians(x mTranX) / 2) * mRadius / 4);path2.lineTo(x, mH y);}sin函数x横坐标y纵坐标mTranX每次偏移量 波形起伏mRadius / 4核心代码利用圆的path与我们之前绘制的曲线做交集Path pc new Path();pc.addCircle(mCentrePoint.x, mCentrePoint.y, mRadius, Path.Direction.CCW);canvas.clipPath(pc, Region.Op.INTERSECT);canvas.drawPath(path2, mWavePaint);canvas.restore();水位上升和水波起伏while (isDraw) {if (mWaterLevel mNowHeight) {mNowHeight mNowHeight mUpSpeed;}if (mStart) {if (mTranX mRadius) {mTranX 0;}mTranX mTranX - mWaveSpeed;}drawUI();}这里由于动画效果比较细腻更新UI界面比较平凡所以我们采用surfaceView来实现(用view实现发现有卡顿影响体验)完整代码就一个waveview类直接布局中引用注释写的应该算比较清楚了。有什么疑问的可以留言package com.aibaide.test;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Path;import android.graphics.PixelFormat;import android.graphics.Point;import android.graphics.Region;import android.util.AttributeSet;import android.view.SurfaceHolder;import android.view.SurfaceView;/*** gengqiquan* 2016年6月2日16:16:48* 水波显示百分比控件*/public class WaveView extends SurfaceView implements SurfaceHolder.Callback {Point mCentrePoint;int mNowHeight 0;//当前水位int mRadius 0;boolean mStart false;//是否开始float mTextSise 60;//文字大小Context mContext;int mTranX 0;//水波平移量private Paint mCirclePaint;private Paint mOutCirclePaint;private Paint mWavePaint;private Paint mTextPaint;private SurfaceHolder holder;private RenderThread renderThread;private boolean isDraw false;// 控制绘制的开关private int mCircleColor Color.parseColor(#ff6600);//背景内圆颜色private int mOutCircleColor Color.parseColor(#f5e6dc);//背景外圆颜色private int mWaveColor Color.parseColor(#ff944d);//水波颜色private int mWaterLevel;// 水目标高度private int flowNum 60;//水目标占百分比这里是整数。private int mWaveSpeed 5;//水波起伏速度private int mUpSpeed 2;//水面上升速度/*** param context*/public WaveView(Context context) {super(context);// TODO Auto-generated constructor stubmContext context;init(mContext);}/*** param context* param attrs*/public WaveView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubmContext context;init(mContext);}/*** param context* param attrs* param defStyleAttr*/public WaveView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);// TODO Auto-generated constructor stubmContext context;init(mContext);}private void init(Context context) {mContext context;setZOrderOnTop(true);holder this.getHolder();holder.addCallback(this);holder.setFormat(PixelFormat.TRANSLUCENT);renderThread new RenderThread();mCirclePaint new Paint();mCirclePaint.setColor(mCircleColor);mCirclePaint.setStyle(Paint.Style.FILL);mCirclePaint.setAntiAlias(true);mOutCirclePaint new Paint();mOutCirclePaint.setColor(mOutCircleColor);mOutCirclePaint.setStyle(Paint.Style.FILL);mOutCirclePaint.setAntiAlias(true);mWavePaint new Paint();mWavePaint.setStrokeWidth(1.0F);mWavePaint.setColor(mWaveColor);mWavePaint.setStyle(Paint.Style.FILL);mWavePaint.setAntiAlias(true);mTextPaint new Paint();mTextPaint.setStrokeWidth(1.0F);mTextPaint.setColor(Color.WHITE);mTextPaint.setTextSize(mTextSise);mTextPaint.setTextAlign(Paint.Align.CENTER);mTextPaint.setStyle(Paint.Style.FILL);mTextPaint.setAntiAlias(true);}Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {mRadius (int) (0.5 * width * 0.92);mCentrePoint new Point(width / 2, height / 2);mWaterLevel (int) (2 * mRadius * flowNum / 100f);//算出目标水位高度}Overridepublic void surfaceCreated(SurfaceHolder holder) {isDraw true;if (renderThread ! null !renderThread.isAlive())renderThread.start();}Overridepublic void surfaceDestroyed(SurfaceHolder holder) {isDraw false;}/*** 绘制界面的线程** author Administrator*/private class RenderThread extends Thread {Overridepublic void run() {// 不停绘制界面这里是异步绘制不采用外部通知开启绘制的方式水波根据数据更新才会开始增长while (isDraw) {if (mWaterLevel mNowHeight) {mNowHeight mNowHeight mUpSpeed;}if (mStart) {if (mTranX mRadius) {mTranX 0;}mTranX mTranX - mWaveSpeed;}drawUI();}super.run();}}/*** 界面绘制*/public void drawUI() {Canvas canvas holder.lockCanvas();try {drawCanvas(canvas);} catch (Exception e) {e.printStackTrace();} finally {if (canvas ! null)holder.unlockCanvasAndPost(canvas);}}private void drawCanvas(Canvas canvas) {//画背景圆圈canvas.drawCircle(mCentrePoint.x, mCentrePoint.y, mRadius / 0.92f, mOutCirclePaint);canvas.drawCircle(mCentrePoint.x, mCentrePoint.y, mRadius, mCirclePaint);if (mStart) {//计算正弦曲线的路径int mH mCentrePoint.y mRadius - mNowHeight;int left - mRadius / 2;int length 4 * mRadius;Path path2 new Path();path2.moveTo(left, mH);for (int i left; i length; i) {int x i;int y (int) (Math.sin(Math.toRadians(x mTranX) / 2) * mRadius / 4);path2.lineTo(x, mH y);}path2.lineTo(length, mH);path2.lineTo(length, mCentrePoint.y mRadius);path2.lineTo(0, mCentrePoint.y mRadius);path2.lineTo(0, mH);canvas.save();//这里与圆形取交集除去正弦曲线多画的部分Path pc new Path();pc.addCircle(mCentrePoint.x, mCentrePoint.y, mRadius, Path.Direction.CCW);canvas.clipPath(pc, Region.Op.INTERSECT);canvas.drawPath(path2, mWavePaint);canvas.restore();//绘制文字canvas.drawText(flowNum %, mCentrePoint.x, mCentrePoint.y, mTextPaint);}}public void setFlowNum(int num) {flowNum num;mStart true;}public void setTextSise(float s) {mTextSise s;mTextPaint.setTextSize(s);}//设置水波起伏速度public void setWaveSpeed(int speed) {mWaveSpeed speed;}//设置水面上升速度public void setUpSpeed(int speed) {mUpSpeed speed;}public void setColor(int waveColor, int circleColor, int outcircleColor) {mWaveColor waveColor;mCircleColor circleColor;mOutCircleColor outcircleColor;mWavePaint.setColor(mWaveColor);mCirclePaint.setColor(mCircleColor);mOutCirclePaint.setColor(mOutCircleColor);}//精确算法每次正弦曲线从曲线与圆的交集处开始// private int getX(double h) {// int x 0;// int R mRadius;// if (h R) {// double t 2 * R * h - h * h;// x (int) (R - Math.abs(Math.sqrt(t)));// } else {// double t -2 * R * h h * h;// x (int) (R - Math.abs(Math.sqrt(t)));// }// return x;// }}最后奉上本文的源码源码下载以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88967.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中国网站开发哪里可以做企业网站

破解root密码(Linux 7) 1、先重启——e 2、Linux 16这一行 末尾加rd.break(不要回车)中断加载内核 3、再ctrlx启动,进入救援模式 4、mount -o remount,rw /sysroot/——(mount挂载 o——opti…

安亭网站建设建阳建设局网站

之前那篇博客是在入门网络流时写的&#xff0c;现在对网络流重新有了一定的理解。 1. 最大流 FF 增广思想 Ford–Fulkerson 增广&#xff0c;核心即不断找增广路并增广。 dfs 实现 // FF brute #include <bits/stdc.h> #define int long longusing namespace std;in…

哪个网站可以做经济模拟题前端开发培训机构tuj

文章目录 一、Ided常用工具栏显示二、更改idea主题设置三、设置代码编辑器背景颜色为豆沙绿四、设置新项目 默认Jdk配置、maven配置1、settings for new projects2、structre for new projects 五、修改代码中注释的字体颜色六、设置编辑器字体大小七、文件编码的设置(可以设置…

seo兼职网智能网站推广优化

URI Uniform Resource Identifier 同一资源标识符 以特定语法标识一个资源的字符串 绝对URI&#xff1a;URI模式模式特有部分 scheme:scheme-specific-part scheme分为&#xff1a; data file本地文件系统 ftp http telnet urn 统一资源名 scheme-specific-part为&am…

怎样做网站的当前位置栏小程序app开发多少钱

目录 一&#xff0c;针对问题二&#xff0c;下载1&#xff0c;github里面下载FastGitHub2&#xff0c;博客上传了下载资源 三&#xff0c;安装使用点击执行文件即可 一&#xff0c;针对问题 当使用github很慢&#xff0c;或者根本打不开的时候&#xff0c;就可以使用该工具 …

站长工具网站备案百度网址收录入口

http://blog.csdn.net/charlesprince/article/details/5924376 TDI FILTER 过滤驱动的功能一般用来进行整个系统中的所有网络流量的分析&#xff0c;记录和管理&#xff0c;可以实现非常强大的管理功能&#xff0c;这里就将讨论它的设计架构&#xff0c;和具体实现的方法。  …

如何对网站的图片做cdn免费软件加速器

找到一个可靠的步骤&#xff0c;点开链接&#xff1a;http://blog.csdn.net/kevindr/article/details/22154323

做封面的软件ps下载网站iis的网站登录没反应

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 你是否听过Linux下一切皆文件&#xff1f; 在哪里我们体悟到了Linux下一切皆文件&#xff1f; 文件是什么&#xff1f; 在哪里体悟到的&#xff1f; 常见疑惑 怎么办到的Linux下一切皆文件&#xff1f; 我们抛出…

怎么看网站被降权征婚网站开发

算法-快速幂 时间复杂度 O(logk) //求 m^k mod p int qmul(int m,int k,int p) {int res1%p;while(k){if(k&1){res*m;res%p;}m*m;m%p;k>>1;}return res; }

用html5做网站的优点建筑工程公司有哪些岗位

1、取得控制台应用程序的根目录方法 方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录&#xff0c;它由程序集冲突解决程序用来探测程序集 2、取得Web应用程序的根目录方法 方法1、HttpRun…

西安 网站建设 培训班wordpress全站伪静态

Lua 是一个功能强大、高效、轻量级、可嵌入的脚本语言。它支持程序编程、面向对象程序设计、函数式编程、数据驱动编程和数据描述。 Lua的官方网站上只提供了源码&#xff0c;需要使用Make进行编译&#xff0c;具体的编译方法为 curl -R -O http://www.lua.org/ftp/lua-5.4.6.…

网站如何做地面推广企航网络推广

1 必须修改端口号 port 323422 2 必须设置密码&#xff0c;并且有一定的复杂度 requirepass dske#123 3 绑定bind ip bind 127.0.0.1 4 使用无登录权限的用户运行redis 配置文件路径 /www/server/redis/redis.conf 一般都是安装文件里 如果忘记密码和端口号也可以去配置文件…

做网站备案是什么意思杭州公积金网站查询系统

1.电子商务最重要的是&#xff08; &#xff09; A.商务 B.网站 C.货物 D.信息技术 正确 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2.目前菜鸟网络依赖大数据和云计算已实现了哪些功能&#xff08; &#xff09; A.自动化仓库 B.智能发货 C.物流云加速 D.以上都正确…

班级网站怎么做自己做网站怎么让字体居中

文章目录 Spring Security OAuth2如何自定义返回的 Token 信息定制不透明令牌的信息Springsecurity-oauth2之TokenEndPoint参考Spring Security OAuth2如何自定义返回的 Token 信息 Spring Boot+OAuth2,如何自定义返回的 Token 信息? 参考URL: https://www.jianshu.com/p/b7…

北京公司响应式网站建设价位北京品牌建设网站公司

作者&#xff1a;老齐对于初学Python者&#xff0c;除了看书(《跟老齐学Python&#xff1a;轻松入门》或者《Python大学实用教程》&#xff0c;均为电子工业出版社出版)、或者看视频(网易云课堂、CSDN上均有老齐的视频课程)&#xff0c;还要进行专题性总结。比如本文&#xff0…

做产品推广得网站网站建设 蔬菜配送

明理信息科技知识付费saas租户平台 在当今的知识付费时代&#xff0c;我们面临着一个重要的问题&#xff1a;如何从众多的知识付费平台中选择适合自己的平台&#xff1f;本文将为您提供一些实用的建议&#xff0c;帮助您做出正确的选择。 首先&#xff0c;我们需要了解自己的…

实施网站推广的最终目的太湖网站建设

1&#xff1a;ARPG类型游戏 2:MMORPG 3:MOBA 4:卡牌类 5&#xff1a;棋盘类 转载于:https://www.cnblogs.com/like-minded/p/8297718.html

自己做的网站加载不出验证码网站和微信同步建设

1.关于MITK&#xff1a; MITK的全称是”The Medical Imaging Interaction Toolkit”。它是一款开源的交互式医学图像处理软件开发和应用平台。MITK将ITK和VTK整合为一个应用框架。该软件由德国一个研究室开发。官网地址为&#xff1a;http://mitk.org/wiki/MITK 。 与MITK同名…

建网站代理最近发生的热点事件

作为一名资深记者&#xff0c;我始终关注并报道科技如何助力特殊群体克服生活挑战的创新实践。近期&#xff0c;我有幸深入了解了一款专为盲人设计的辅助应用叫做蝙蝠避障&#xff0c;它以实时避障系统为核心&#xff0c;为视障人士独自出行提供了强有力的支持&#xff0c;悄然…

网站快速注册网站开发流程的8个步骤

首先写在最前面&#xff0c;MyCAT1.4的alpha版本已经发布了&#xff0c;这里面修复了不少的bug&#xff0c;也完善了一细节&#xff0c;之前两篇博客已经做了一些修改---------------------------------------------------------------------------------这才是本体~----------…