仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源代码)

转载请说明原出处,谢谢~~     上一篇仿酷狗日志结束后,整个换肤功能就仅仅剩下调色板功能没有做了。我本以为会非常easy。可是研究了酷狗的调色板功能后发现不是那么简单的事情。首先看一下酷狗的调色板的样子:    我原本以为酷狗的主界面仅仅是一张图片。然后通过鼠标坐标来选择颜色,简单粗暴。等我開始做这部分时发现情况不一样。    能够看到,酷狗的调色板分为两部分,上半部分是调色板的主界面,下半部分是调整亮度的工具栏,我这里分别给他们起名为Pallet和Bar方便说明。这个调色板的Pallet部分的总体亮度能够依据Bar的值而改变,而Bar的颜色会依据Pallet的选择的颜色而改变,这就加大了难度。    这个调色板动态生成了颜色值。假设要做出一样的功能,首先要解决的就是得知这个调色板的绘制算法,这个着实让我头疼,由于我曾经从来没有研究过调色板,也不喜欢搞这样的算法。    我首...

游戏开场镜头拉近(Unity3D开发之四)

猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢!原文地址: http://www.cocos2dev.com/?p=553今天看了个Demo。发现它的游戏开场会先有个白色遮罩层的渐变消失。然后镜头拉进到目标场景。镜头拉进主要用Vector3.MoveTowards()1、加入一个GUITexture。用作白色遮罩层。设置Activefalse,事先不可见。不然就挡住你场景了。2、加入一个EmptyObject,放置在终于希望camera放置的位置。3、将cameraposition.z调整到离目标位置的合适距离。usingUnityEngine;usingSystem.Collections;publicclassDemoScene:MonoBehaviour{publicTransformtargetPoint;//camera将要移动到的目的地。能够是一个EmptyObjectpublicGameObjecttitleText,whiteMask;//title,白色的全屏遮罩(事先在场景中Active为false...

Apache Mina开发手冊之四

ApacheMina开发手冊之四作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs一、Mina开发的主要步骤1、创建一个实现了IoService接口的类IoService接口有两个子接口:1)IoAcceptor接口,用于server2)IoConnection接口,用于clientIoService接口的目的是提供服务。有几个默认实现:NioDatagramAcceptor、NioDatagramConnectorNioSocketAcceptor、NioSocketConnectorVmPipeAcceptor、VmPipeConnectorProxyConnector2、设置一个过滤器。假设须要自己定义过滤器,那么此过滤器须要实现了IoFilter接口IoFilter作用是建立一层过滤网。作用与Servlet规范中的过滤器一样。IoFilter接口的默认实现比較多,有些仅供内部使用。有些供用户使用,并且过滤器的顺序能够影响程序的执行。经常使用的实现类包含:1)ExecutorFilter:从此过滤器后的不论什么操作都工作于这个Execut...

Android首席设计师宣称移动概念已死,开发人员应该面向屏幕编写应用而非移动

腾讯科技对Android首席设计师Duarte“移动已死”訪谈内容的翻译错得离谱,被到处转载,误人视听。而要真正理解Duarte所想表达的含义,须要深入了解互联网前沿设计理念以及移动网络的发展、本地应用APP的现状。为正确表达文章原意,校正翻译例如以下。原文发表于踏得网(Techbrood.com)。(Duarte的訪谈视频链接例如以下:http://www.theverge.com/2014/4/15/5619182/android-design-head-matias-duarte-says-mobile-is-dead)Matias Duarte, Android首席设计师, 在近期2014年Accel设计大会上强调,从为不同的设备开发不同的应用到一个应用适配多个屏幕。须要转换我们的软件设计方法。在这个针对软件设计师、产品经理以及开发人员的大会訪谈中,Duarte做了一个非常大胆的声明,“移动作为一个概念已经死了,移动休矣。”,他当然不是说移动设备已死,而是说单独的为移动设备设计应用是一条错误的道路,已经不合时宜。他建议使用“屏幕”这种字眼来替代“移...

与一线Linux嵌入式开发project师的对话

转:与一线Linux嵌入式开发project师的对话     陈project师一直做Linux的嵌入式开发。作为在开发一线的project师。他对非常多问题的看法可能更切合实际需求,于是,通过邮件。就嵌入式开发方面的问题,请他谈了一下自己的看法:        问:关于嵌入式开发。我们准备给同学们解说一些入门知识。从你一线开发经验来说,给我们一些建议:    陈工回答:    对于嵌入式Linux入门,假设有一定基础,可以从驱动開始;假设没有基础。我个人建议还是从应用程序開始。由于从应用程序開始是最easy的,也是最直观的。而驱动程序执行在内核态。驱动本身的结构就比較复杂,假设要彻底弄明确驱动的执行机制,必然牵涉内核,对于高年级的学生恐怕问题会少一些。而对于低年级的学生,问题预计较多。我以前遇到过一些刚開始学习的人,就是一入门就栽了。失去了信心,当然这仅仅是少数。只是。假设在遇...

50个Android开发技巧(11 为文字加入特效)

问题:怎样构建一个模拟LED数字时钟的页面?效果例如以下图所看到的:(原文地址:http://blog.csdn.net/vector_yi/article/details/24460227)分析:我们能够利用两个TextView来显示,第一个TextView显示LED屏上默认不发光的88:88:88。还有一个显示实时的时间并加入发光及阴影效果。可是我们还须要解决显示的字体问题,让它看起来更像是一个真实的LED数字时钟。解决步骤:(1)自己定义一个LedTextView类,继承自TextView。这个类主要用来设置和显示字体。        (2)在MainActivity中新开启一个线程用来更新LedTextView显示的时间。        (3)为LedTextView加入阴影效果。看起来更真实。一、自己定义LedTextView类我们在创建一个Androidproject时,会同一时候生成一个assets目录。用来存放须...

测试开发:服务器端测试要点

功能测试所有的接口进行测试,算法测试、组件测试、白盒测试、后台逻辑覆盖测试;数据流转正确性(请求的数据的各种等价类值、load的数据正确性和速度、输入数据类型覆盖);软件配置(线程数、连接数、cache大小或开关、编译优化、其他配置项等)容错性接口、组件处理错误数据稳定性7*24小时稳定;结果展现率、无结果率、成功失败的比例性能满足大并发的业务要求;平均响应时间、吞吐量、响应时间分布、存库数据正确性安全性敏感进行在传递过程中加密实际运维相关1)资源占用:cpu、内存、磁盘io、网络带宽、运维监控所需的特殊log、log文件大小对资源占用、数据存储分环和镜像的可扩展性;2)处理性能:是否符合线上运营要求,比如中间环节组件处理速度为瓶颈时导致上层组件数据堆积等3)尽量模拟线上各组件的框架搭建测试环境,了解线上单环模块承受的运营压力;了解待测模块在线上服务器的资源占用情况,是否有其他模块抢占资源,尽量模拟服务器资源被其他模块抢占时的情况。...

测试开发:手机客户端测试要点

测试类型测试测试项内容启停逻辑正常退出后启动1、各启动入口:程序启动主图标、程序某个功能的启动快捷键、Widget2、启动后状态检查:如初始化信息、初始状态、启动对网络3、启动进程服务检查:进程名、进程数、服务名、服务数、第三方调用的SDK如GPS异常退出后启动1、操作出现崩溃后再启动:如空指针、内存溢出等不同崩溃2、手动停止进程:多进程的情况停止所有或者停止其中一个后重启3、手动停止服务:多服务的情况,停止所有或者停止部分服务后,未重启直接使用(检查自动绑定)4、管家软件一键清理进程后重启5、其他系统软件工具停止进程、清理软件数据自动启停6、程序存在自动启动,或者定时退出业务功能所有功能的触发事件要逐一验证 输入数据的容错测试 权限安全系统权限1、需要用户确认的权限没有授权,权限默认关闭2、联网权限被管家、系统安全类软件限制情况下的联网操作3、权限敏感度,如通讯录等为系统的绝密权限谨慎获取安全4、使用安全软件进行安全漏洞、病毒扫描文件存储存储方式1、APP使用过程中产生的临时文件存储路径、命名方式等2、APP下载操作产生的文件存储方式3、存储的文件被锁、占用磁盘...

测试开发-接口测试要点

类型测试思想类型备注接口测试所有必填参数都填写的情况测试http协议的接口输入值使用合法和不合法进行测试。参数值的取值考虑参数测试方法,按照业务规则进行测试,使用自动化测试增加随机化所有必填参数情况+一个选填参数情况测试(一一遍历所有选填参数)http协议的接口输入值使用合法和不合法进行测试。参数值的取值考虑参数测试方法,按照业务规则进行测试,使用自动化测试增加随机化所有必填参数情况+多个选填参数情况测试(可选参数数量少就遍历所有可能,可选参数太多则使用随机组合测试,或者根据业务的实际发生情况进行必要的参数组合)http协议的接口输入值使用合法和不合法进行测试。参数值的取值考虑参数测试方法,按照业务规则进行测试,使用自动化测试增加随机化所有必填参数情况+所有填参数情况测试http协议的接口输入值使用合法和不合法进行测试。参数值的取值考虑参数测试方法,按照业务规则进行测试,使用自动化测试增加随机化缺少某一个必填参数情况测试(所有必填参数进行此测试用例)http协议的接口 相同名称的参数出现多次,且数值不一样http协议的接口 使用不存在的参数,验证系统报错是否正确ht...
代码星球 代码星球·2021-02-12

测试开发-PC客户端测试要点

  一级测试点二级测试点安装测试首次安装(exe和msi格式的不同)安装程序权限检查软件安装包的描述和属性信息静默安装和非静默安装测试有UAC安装、无UAC安装联网安装、断网安装对必要软件环境的提示 多次覆盖安装,查看覆盖安装后已有数据是否有影响检查软件组件覆盖更新、检查配置文件覆盖更新、检查安装日志完整性、检查新旧版本覆盖兼容性卸载后安装,查看已保留的数据是否正常卸载通常有两种策略:完整卸载和保留配置数据卸载,要分别测试自定义安装安装路径、磁盘空间、系统配置环境要求手动输入路径安装(不存在的路径、存在的路径) 磁盘不足时候安装 缺少目录创建权限安装 安装过程中退出安装(断网、死机、取消安装)情况死机一般情况下可不做检查安装后是否会影响系统软件,常用软件如果软件调用了系统级接口,就要对此接口的稳定性、健壮性进行测试安装过程中界面信息提示“安装说明、版本号、软件名称”是否正确 不同操作系统下进行软件安装 安装向导的前进和后退测试 快捷方式:桌面,菜单,任务栏,系统栏,控件面板,系统服务列表等&nbs...

测试开发-web测试要点

参数输入考虑参数数值包含1个、多个、很多个、null、参数值前后包含空格的2种情况 数字类型:正数、负数、0、0.0、+0.0、-0.0、指数、对数、分数、小数、复数、科学计数法的测试,全角的数字、超大整数,超大的小数,超小的小数 文字类型:空格(半角、全角)、所有键盘可以输入的字符(全角、半角)、中文、英文、数字、英文双引号、英文单引号、系统保留字、编程保留字、数据库保留字 文字测试语言风格是否统一 文字排版是否美观 文字描述是否有二义性 错误提示的语言是否明确 多语言测试情况下,文字显示正确 文字内容是否和需求文档保持一致 图片图片类型、大小、显示尺寸、属性、图片路径、图片链接,数据库保存图片的不同大小、图片显示是否变形,图片是否影响页面其他元素的布局; 文件文件类型、大文件、超小文件、超大文件、只读文件、占用状态、无权限的文件 文件不存在、文件重名情况、硬盘满了、文件只读属性、文件被占用状态、文件的名称(过长、过短)、文件类型、网络文件 文件目录目录名称、目录下...
代码星球 代码星球·2021-02-12

前端微信公众号的网页开发调试

  公众号开发有很多限制,尤其是网页开发,竟然没有调试的入口  开发webapp的诟病  接下来我们可以使用vconsole来进行开发调试  vConsole是一款由微信公众平台前端团队打造的前端调试面板,专治手机端看log难题  使用方法:通过npm来下载  下载网址:https://www.npmjs.com/package/vconsole  命令行指令:npmi vconsole-S  然后我们在main.js中使用         import VConsole from 'vconsole';     var vConsole = new VConsole();   如图:          ...

本地localhost开发环境配置为https环境域名

本地localhost开发环境配置https环境域名反向代理(个人实测好用,其它没有实测)线上生产环境常见的一种架构是在HTTP服务前加一层反向代理,HTTPS加解密在反向代理层面完成。如果项目的生产环境使用这一架构,那么为了最大限度地与生产环境保持一致,本地开发调试时也可以采取类似的架构,比如使用Caddy充当反向代理服务器。macOS下Caddy可以通过Homebrew安装,其他系统请参考Caddy文档[3]:brewinstallcaddy正常启动HTTP服务后,只需一行命令即可加上反向代理(这里假定服务的端口是3000):caddyreverse-proxy--fromlocalhost--tolocalhost:3000通过https://localhost即可访问服务:Caddy会自动生成证书,获取系统信任,无需另行生成证书,也无需修改项目的启动服务。 ps:(给自己看的,caddy装到了nginx.config目录)文章来源:https://www.cnblogs.com/qiumingcheng/p/11608328.html...

安卓开发实战之app之版本更新升级(DownloadManager和http下载)完整实现

转载: https://blog.csdn.net/u013278099/article/details/52692008前言本文将讲解app的升级与更新。一般而言用户使用App的时候升级提醒有两种方式获得:一种是通过应用市场获取一种是打开应用之后提醒用户更新升级而更新操作一般是在用户点击了升级按钮之后开始执行的,这里的升级操作也分为两种形式:一般升级强制升级app升级操作:应用市场的app升级在AppStore中升级需要为AppStore上传新版App,我们在新版本完成之后都会上传到AppStore中,在审核完成之后就相当于完成了这个应用市场的发布了,也就是发布上线了。这时候如果用户安装了这个应用市场,那么就能看到我们的App有新版本的升级提醒了。应用内升级除了可以在应用市场升级,我们还可以在应用内升级,在应用内升级主要是通过调用服务器端接口获取应用的升级信息,然后通过获取的服务器升级应用信息与本地的App版本比对,若服务器下发的最新的App版本高于本地的版本号,则说明有新版本发布,那么我们就可以执行更新操作了,否则忽略掉即可。/显然应用市场提醒的升级不是我们的重点,本篇主...

iOS开发之如何在用户删除应用后保持一些数据

开发过程中我们有时候在用户删除时候保存一些信息在用户下次安装应用时候使用,这个时候我们可以使用剪切版UIPasteboard的FindUIPasteboard和钥匙串keychain的使用剪切版剪切版主要分为以下两种UIPasteboardNameGeneral和UIPasteboardNameFind两种都是系统级的可以在应用删除后仍然保留数据开发中我们常常使用UIPasteboard的FindUIPasteboard来保存一些用户删除应用后需要保留的数据如UUID,用户名,密码等下面是一个保存uuid到UIPasteboard的代码创建UDID+(NSString*)_uuidCreateNewUDID{NSString*_openUDID=nil;CFUUIDRefuuid=CFUUIDCreate(kCFAllocatorDefault);CFStringRefcfstring=CFUUIDCreateString(kCFAllocatorDefault,uuid);constchar*cStr=CFStringGetCStringPtr(cfstring,CFStringG...
首页上一页...1718192021...下一页尾页