自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (17)
  • 收藏
  • 关注

原创 【Android】修改App字体的三种方法.md

引言一款视觉优秀的App除了良好的图片和颜色搭配,好的字体也是必不可少的,这里主要介绍Android中修改App字体的三种方法,每种方法都有自己的优缺点,根据实际情况选用。字体文件后缀一般为.ttf,在Android项目中一般将字体文件存放在assets/fonts目录下,也可以放到存储器中。为了方便使用,三种字体修改方式已经打包,可直接在gradle中使用,源码和使用方法参考 Github。方式1

2015-11-01 21:01:05 16038 3

原创 【Android】一个获取Android应用签名摘要的App工具

将APK发布到应用商店或接入第三方的SDK时,有时需要提供APK的签名摘要信息,可以通过摘要算法MD5或SHA-1来获取签名的摘要,除了获取自己的APK签名,也可以获取手机上其他已安装的APK签名,只需要传入其他APK的包名即可./** 获取签名的MD5摘要 */public String[] signatureDigest() { pkgInfo = mContext.getPackageM

2015-09-09 23:22:08 8108

原创 【Android】Android程序自动更新

App自动更新的步骤可分为三步:检查更新(如果有更新进行第2步,否则返回)下载新版的APK安装包安装APK下面对这三步进行解释,其中会穿插相应代码,App自动更新的这三步全部被封装到了一个单独的Updater类中,可以直接拿来使用,我会在文章最后贴出源码github地址。Updater 使用示例通过单一的类Updater可以方便的实现自动检查更新、下载安装包和自动安装,可以监听下载进度,可以

2015-07-23 08:43:05 2051

原创 【Android】ListView 优化

重用 ListView ItemListView创建时其会创建屏幕可容纳数量的 Item,ListView 滚动时,刚消失的 item 会被保存到回收池中,新出现的 item 从回收池中获取避免重复创建,这个回收池由 ListView 维护。从回收池取出 item 会传递给 Adapter 的 getView() 方法的第二个参数,如果回收池中没有内容就传递一个 null。所以在 getView()

2015-06-05 22:59:13 1162

原创 【Android】ListView 顶部浮动栏效果

ListView 中有时需要在顶部固定一个浮动栏,当向上滑动 ListView 时,浮动栏固定在顶部,当向下滑动 ListView 到其 HeaderView 可见时,浮动栏成为ListView的一部分,与ListView一起滑动。效果如下:实现思路使用两个浮动栏,一个浮动栏(A)添加到 ListView 的 HeaderView中,另一个浮动栏(B)与ListView顶部对齐布局。当ListVie

2015-05-31 21:17:55 3014

原创 【Android】消息机制原理

Android 消息机制涉及到的类主要有LooperHandlerMessage、MessageQueueHandlerThread下面结合 Android API 22 的源码分析上面几个类的内部实现细节,以窥探其中的原理一二。Looper 消息循环Looper 是一个循环处理消息的类,Looper内部维护一个消息队列,循环的从消息队列中取出消息并处理,如果队列为空则等待新消息。Loop

2015-05-12 09:46:22 1607

原创 【Android】消息机制应用

通过一个例子来熟悉下 Android 消息机制的使用,这个例子中主线程中有一个EditText、ImageView 和一个 Button,在 EditText 中输入图片地址后,点击 Button,主线程向后台线程发送消息请求下载图片,后台线程下载完图片后向主线程发送消息请求更新UI以显示下载的图片。通过这个例子一方面熟悉消息机制过的使用,另一方面理解 Handler 的双向传递。最终的效果如下:主

2015-05-06 11:50:52 925

原创 【Android】Activity 生命周期详解

与其他编程模式不同,android中的Activity没有main()函数,我们无法决定Activity的创建和销毁过程,Activiy的创建和销毁(即生命周期)由系统完成,系统会在Activity的生命周期的各个阶段回调Activity相应的成员函数。如果你想在Activity的某个生命周期阶段完成一些事情,你要做的就是重写(Override)相应的生命周期回调函数,并在该函数中完成相应的任务。下

2015-04-01 17:50:37 1309

原创 【Java】内部类

摘要java内部类可分为下面四种: * 成员内部类 * 静态嵌套类 * 方法内部类 * 匿名内部类 为什么使用匿名类?内部类也会想普通类生成一个对应的class文件?带着这些问题往下看。成员内部类java中内部类可以访问外围类的成员,并且可以有多个内部类实例,多个内部类之间共享一个外围类实例。每当创建一个内部类对象时,内部类会保存一份指向外围类的引用,在内部类里面通过该引用访问外围类,这些

2015-03-26 14:18:35 723

原创 【Java】Class 对象

每个类都有一个Class对象Java中一切皆对象,各种各样的对象提供了丰富的功能,今天说说”对象的对象”。java.lang.Object java.lang.Class<T>每个类都有一个相应的Class对象,该Class对象包含了创建对应类所需的各种信息,在我们编译一个新定义的Java类时会生成一个相应的Class对象(也就是同名的.class文件),程序中需要实例化该类时,就通过该类对

2015-03-25 15:53:14 1634

原创 【Java】== 和 equals() 区别

==可以用于基本类型和引用类型的比较,比较基本类型时,是比较其值是否相同;比较引用类型时,是比较其是否引用了同一对象(其实也是比较其值是否相同,这里的值是对象的地址)。equals()用于比较两个对象的内容是否相同,

2015-03-22 15:44:23 762

原创 【Java】package 和 import 关键字

一些人用了一阵子的Java,可是对于 Java 的 package 跟 import 还是不太了解。很多人以为原始码 .java 文件中的 import 会让编译器把所 import 的程序通通写到编译好的 .class 档案中,或是认为 import 跟 C/C++ 的 #include 相似,实际上,这是错误的观念。import的作用如果没有import,我们在使用java类库时就需要书写该类的

2015-03-18 13:58:58 5126 3

原创 2015 New Start

马上就是农历春节了,回家的火车票已经买好了,明天中午出发。实习的公司前天放假了,今天是最近这段时间最悠闲的一天了,走在校园里空荡荡的,好久没有这么安静了。回顾这一年,感觉经历了很多事,从四月份开始实习做C++/Qt开发,十月又做C++/cocos2d-x,前面一份工作很闲,感觉应该忙点就找了第二份游戏开发,多少也有点理想在里面。做了几个月了在项目组做的还不错,虽然是实习但是和正式工一样正常作息和加班

2015-02-15 14:37:10 712

原创 【Cocos2d-x】节点裁剪 ClippingNode

有时候我们需要一张圆形的图片,可是美术提供的是一个矩形的资源图片,怎么办?让美术再做一张圆形的?即使这样能暂时解决问题,无疑增加了开销,何况有时候你可能需要显示一张图片里的不同部分,不可能每种情况都让美术都做一次修改吧,这时候 cocos2d-x 里提供的节点裁剪技术就派上用场了。节点裁剪 原理cocos2d-x 提供 CCClippingNode 类的可以用来对节点进行裁剪,可以根据一个

2014-12-11 20:56:19 1906

原创 【C++】cmdline —— 轻量级的C++命令行解析库

平时用C++写一些命令行工具,需要解析命令行的输入参数,这是一项繁琐并且容易出错的工作,我们不应该将主要精力放在这上面,可以考虑使用开源的库,下面的cmdline就是其中非常好用的一款。cmdline 是一个非常简单好用的C++命令行解析库,其基于模板,所以使用很简单,写出的代码也很优雅。由于其只包含一个头文件,所以很容易集成到自己的项目中。

2014-10-26 20:15:30 16835 1

原创 【C++】Byte/KB/MB/GB/TB/PB/EB 单位换算C++代码

字节单位换算公式:1 GB = 1024 MB1 MB = 1024 KB1 KB = 1024 Bytes1 Byte = 8 bits将字节单位转化为目标单位根据公式我写了一段C++代码,用于将输入的以字节为单位的数值,转换为目标单位数值。代码中的枚举类型用的是C++11的语法。enum class Unit{ Byte, KB, MB, GB, TB, PB, EB};

2014-10-20 22:56:36 6841

原创 【cocos2d-x 3.x 学习笔记】对象内存管理

cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色(自动回收池)。

2014-10-01 16:01:10 1717 1

原创 【Qt】为QtCreator 配置 VS2013 黑色主题

概览先看一下最终的效果图,与VS2013深色主题相近的代码配色和界面配色,是不是有点心动了呢?如果只想使用可以跳到这里,如果想了解如何配置请继续往下看。安装和使用(1)配置代码编辑区域的配色方案先下载配置问价 vs2013_dark.xml,拷贝到QtCreator安装目录下的"QtCreator\share\qtcreator\styl

2014-09-23 20:19:39 10424 4

原创 【cocos2d-x 3.x 学习笔记】对象创建方式讨论

一般C++创建对象的方式,直观符合一般的C++编程习惯,缺点是需要自己负责资源的释放(这一点可以使用共享指针std::shared_ptr来最大限度避免)。而且如果无法知晓init()函数调用是否成功(这一点可以通过增加一个是否初始化成功的成员字段,作为标识来间接判断)。cocos2d-x创建对象的方式,其在构造函数中初始化成员变量,在初始化函数中完成对象的初始化工作,在类的静态函数create()中完成前两步并将内存交由其内部的内存管理机制管理。可能有点绕弯,但是一旦习惯用起来还是很好的。这种方式最大的

2014-09-14 17:27:13 2481

原创 【cocos2d-x 3.x 学习笔记】 HelloWorld —— 小程序大道理

cocos2d-x 3.2 的环境搭建可以参考官方给出的教程。这里我使用的是 Win7 + VS20131. 创建项目在Windows下搭建好环境后,打开命令行(按 Win+R,输入cmd),执行下面命令:cocos new MyGame -l cpp -d F:\ -p mypackage.com执行上述命令后,将会在F盘根目录下创建名为“MyGame”的

2014-09-13 17:24:31 3156 9

原创 【Qt for Android】OpenGL ES 绘制彩色立方体

Qt 内置对OpenGL ES的支持,选用Qt进行OpenGL ES的开发是非常方便的,许多辅助类头已经具备。从Qt 5.0开始增加了一个QWindow类,该类既可以使用OpenGL绘制3D图形,也可以使用QPainter绘制2D传统的GDI+图形,5.0以前的QGLWidget不推荐再使用。在即将到来(官方时间是今年秋天)Qt 5.4会完全废弃QGLWidget,作为替代将会新增QOpenGLW

2014-09-03 11:25:20 5570 1

原创 【Qt for Android】第一个安卓程序

1)首先需要去官网上下载 Qt for android 版本的 Qt SDK2)下载 android 相关的 SDK,下载地址不用找了,在Qt Creator工具选项的Android配置中有相应的下载链接地址。3)下载完安卓SDK后,在上面的配置界面中指定相应SDK的目录,然后在"Build & Run"中新增Android的Kits

2014-08-30 21:48:59 3591

原创 【Qt】仿QQ表情选择控件

表情选择控件在聊天应用中经常要用到,做起来虽然不复杂但是很繁琐,特别是有些图标需要按顺序排列。每次重做必然是很费时,所以我将聊天表情选择控件封装成一个独立的类QFaceSelectWidget,方便直接应用到自己的项目中。先来看看效果图:测试程序是一个对话框,里面放有一个QPushButton和一个QLabel,水平布局。点击按钮弹出“表情选择框",选择表情后"表情

2014-08-24 15:36:42 3756 6

原创 【HTML5】实现QQ聊天气泡效果

今天自己用 HTML/CSS 做了个类似QQ的聊天气泡,下面是效果图:下面说下关键地方的样式设置,然后贴出html和css代码(不多)。步骤1:布局消息采用div+float布局,每条消息用一个DIV标签包裹,里面再放两个DIV分别用来包裹用户图标和用户消息内容。左边消息,先清除浮动,然后设置 float:left,这样用户图标和消息内容就可以显示在同一行了,其

2014-08-23 14:46:50 13637 3

原创 【Qt】C++中的循环遍历

介绍     本文主要讨论C++中常见的几种循环遍历操作的语法:基于迭代器、基于Qt库中的foreach关键字、基于C++11新增的for循环语句。基于迭代器的遍历在C++容器中经常需要进行遍历操作,在C++11之前一般使用下面这种方式——基于迭代器的遍历: QList list {"a", "b", "c", "d"}; QList:

2014-08-06 15:13:36 4968

原创 两个月没写博客了

有近连个月没有写bolg了,总觉得有点不踏实。这两个月在一家小公司实习,做企业内部通信软件,用的是Qt开发框架,学习了不少知识。没出来实习前,自己一直都是对什么感兴趣就连续几天研究、做demo、记笔记,实习后时间比较紧张,每天回家已经很累了,有时玩下游戏放松下就该睡觉了,所以没有继续写bolg了。一段时间不写东西,自己就感觉不踏实,总觉得刚学会的知识点可能会随时间遗忘,有种不确定感,所以决定从今天

2014-07-26 20:57:00 1080

原创 Spire.XLS for .NET 测评

有一位朋友推荐了我 Spire.Office (官网:http://www.e-iceblue.com/) —— 基于.NET的办公软件库,说不错。到底如何呢?只有亲测一下才能知道了。前言     网络上流传的 Office 库很多,可谓“百家争鸣”,但有时候选择多了反而容易让人产生困惑,难以抉择。所以最能吸引程序员的 Office 库一般都具有下面的优点:(1)功能完整(

2014-05-28 11:18:11 7895 2

原创 经典C语言程序设计100例 -- C 和 Python 版 (06 - 10)

【06】格式化输出题目:用*号输出字母C的图案。思路:可先用'*'号在纸上写出字母C,再分行输出。如果输出图形较大,且有规律可循,可考虑使用循环。C 语言代码int main(){ const char *p = " **** \n" " ** ** \n" "** \n"

2014-05-20 22:53:18 2114

原创 经典C语言程序设计100例 -- C 和 Python 版 (01 - 05)

写在开头的话Python 重写C语言程序设计百例,每篇5题,每题分别用C语言和Python实现,方便对比。    C语言编译器:GCC 4.8.2    Python版本:Python 3.7写这个系列是受这位博主(http://blog.csdn.net/berguiliu?viewmode=contents)的启发,自己想重写一遍,使用更加Python化的风

2014-05-20 19:05:09 3055

原创 Python 练习 —— 2048

1. 引言     2048 这段时间火的不行啊,大家都纷纷仿造“百家争鸣”,于是出现了各种技术版本:除了手机版本,还有C语言版、Qt版、Web版、java版、C#版等,刚好我接触Python不久,于是弄了个Python版——控制台的2048,正好熟悉下Python语法,程序运行效果如下,左右两幅图是连续的:图 1  Python版控制台2048运行截图

2014-05-08 19:31:06 15400 4

原创 Python 基础 —— 模块和包介绍

1、模块的作用     在交互模式下输出的变量和函数定义,一旦终端重启后,这些定义就都不存在了,为了持久保存这些变量、函数等的定义,Python中引入了模块(Module)的概念。一个Python模块其实就是一个脚本文件,具有后缀“.py”,例如 hello.py 就是一个模块文件名,和普通文件一样可以被永久保存在本地存储磁盘中。2、模块的内容     Python

2014-05-06 15:54:02 2173

原创 Python 基础 —— 循环技术

简单谈谈 Python 中容器的遍历和一下小技巧。1、遍历单个容器     下面代码遍历一个 List 结构,同样适用于 Tuple、Set 结构类型>>> x = [1, 2, 3, 'p' , 'y']>>> for v in x:...     print(x)... 123py     遍历字典 Dict 结构也是

2014-05-05 16:34:44 1474

原创 史上最强大的 Vim 代码补全引擎:YouCompleteMe

引言    自己之前Vim的代码补全插件都是使用 ctags + autotag + taglist + omnicppcompele 的组合,而且很多时候都没有提示或提示补全,而且每次打开一个新文件文件都需要创建一个 ctag 标签库,代码补全才能正能工作,十分的繁琐蛋疼。当时我就在想,既然源代码都有了,难道就没有一个 Vim 插件能的通过已有的源代码,实时构建语法书来提供代码补全提示吗

2014-05-04 21:37:36 6004

原创 TCP/IP 体系常见协议图解

以前自己学习 《计算机网络》和 Socket 编程时,需要做笔记或者PPT之类,经常需要一些网络协议格式图,网上找的每个图都有自己的风格,不统一,索性自己画了一些常见的网络协议格式示意图,方面大家在做报告、PPT时引用。等有空了,会为每张图添加一些字段和相应的代码结构说明,现在先上图吧。 图 0  常见的网络协议1. 数据链路层协议图1  Ethernet Fr

2014-04-15 17:42:28 4523

原创 【C++】重载二维数组下标 [ ][ ]

1. 分析重载一维数组下标很简单,通过下标传入的索引值,返回内部数组中相应的值。那重载二维数组的下标运算呢?其实重载二维和一维本质是一样的,因为 C/C++ 中所谓的 “二维或多维数组”都是又简单的一维数组表示的。举个例子哈:下面是两个 int 数组,第(1)个是熟悉的一维数组,第(2)个是熟悉的二维数组,现在你要做的就是将第(2)个数组看成是一个一维数组。

2014-03-16 19:34:25 9626 6

原创 【C++】字符串和数值类型的相互转化(借助STL)

在C++编程中有时会遇到字符串和数字的相互转化,以前学习的时候老师喜欢将这种转化当成作业,要我们写函数实现。但是实际为了方便准确还是会优先使用STL来完成。     在 C 标准库中提供了字符串到数值类型的转化函数,但是没有提供数值到字符串的转换(不过有些系统如 Windows API中提供数值到字符串的转化)。先看看C标准库中的字符串转化函数,这些函数都包含在头文件 中:

2014-03-14 17:34:58 4980

原创 【C++】Runtime error:iterators incompatible 迭代器类型不一致

之前写了下面这样的一段代码(数据类型简化了一下,功能类似),结果老是报错误 "iterator can not dereference" 或者是 "iterators incompatible"的运行时错误.后来找到了问题的关键是一个疏忽,但是又容易犯,这里记录下方便以后遇到类似的问题给自己提个醒。#include #include #include using namespace st

2014-03-14 15:14:45 1322

原创 有趣的 IT 技术

1. HTML5 做的打字游戏,不错哦!http://www.webhek.com/misc/z-type/

2014-03-10 10:11:50 1752

原创 【译】愿逝者安息,UEFI先驱——BIOS

如果你在过去的三十多年里用过计算机,那么你应该对计算机中基本输入输出系统(BIOS)很熟悉。事实上它存在了这么长时间也暗示这它需要被取代了(计算机世界里很少有技术能三十多年不变)。UEFI 正在慢慢的取代BIOS,这将会使我们的计算机体验提升到一个更高的层次。BIOS 为主板本身提供了核心功能,诸如开启硬件、为实际操作系统启动过程开始之前提供硬件系统启动。它本质上是一个主板的操作系统,你的操作

2014-01-09 22:05:52 1249

原创 【Qt】Windows7 和 Ubuntu11 下安装配置 Qt 5.2.0

一、Windows 7 下安装配置 Qt 5.2.01) 下载 Qt, 可以在qt project 官网上下载,有两个编译版本,一个是VS2010,另一个是MinGW(GCC的Windows移植版本),选一个即可。http://download.qt-project.org/official_releases/qt/5.2/5.2.0/qt-windows-opensour

2014-01-09 16:38:13 4885 4

Win32做的取色器

使用Win32API编写的一个取色器,可以实时显示鼠标悬停位置的RGB值和颜色,源代码只有一个文件,用VS打开编译即可

2014-09-20

Python 版 2048

Python 写的 2048, 控制台的,代码加注释150行左右,关于实现思路请看我的博客http://blog.csdn.net/xiaohui_hubei/article/details/25333775

2014-05-10

C#端口扫描器demo

C#写的端口扫描器,博客http://blog.csdn.net/xiaohui_hubei/article/details/7515103 里面提及了一下,这里贴出源码。

2014-01-05

网络协议分析器设计文档

之前发了一个网络协议分析器的程序,有朋友反映没有文档,这次将文档整理上传,作为补偿免积分下载!

2013-12-21

网络协议分析器的设计与实现

这是我的毕业设计,通过Winpcap捕获网络原始数据包,根据网络协议分析数据包首部信息,并将解析结果显示到MFC界面上,使用了Winpcap强大的数据包过滤引擎,可以根据过滤规则准确的捕获特定的数据包。

2013-06-05

基于Raw socket的简单数据包捕获程序(DOS版)

使用原始套接字来对接收的IP数据包进行分析

2013-05-07

基于TCP和UDP的socket通信程序(C语言)

C语言编写的两个聊天程序,一个是基于TCP一个是基于UDP,算是给初学socket编程的朋友一个启迪吧,里面代码注释比较详细,代码尽量去掉不相干的东西,突出TCP和UDP通信的过程。

2013-05-07

C# 端口 扫描

使用C# 做的一个端口扫描工具,使用了异步编程,所以速度还算比较快的,附件中有全部源代码和程序,希望有所帮助~~

2012-04-24

N皇后问题 C/C++实现

这是我在上了算法设计与分析课后完成的一道作业题,供大家参考学习回溯算法原理

2011-11-26

蚁群算法实现路由选择拥塞避免C#实现

这个是学校搞论文大赛时我做的论文研究(写这个时本人大二),该程序时用基于C#可视化界面编写的用蚁群算法实现网络中的路由选择和拥塞规避的,有兴趣可以下来看看,出于各种原因,源代码暂时不能公开,只能将成品给大家看看,以作界面上的参考~~

2011-07-23

24 点游戏(C语言编写,存在一些缺陷)

用C语言写的24点小游戏,里面包含了算法的大致原理,但是还有一些细节问题没处理好,希望你能做的更好~~

2011-07-23

C语言写的日历(含叙述思想的文档)

这是用C语言写的一个日历程序,效果很棒~~,排版很好,里面带有运行的截图以及算法的原理公式,包你看了就会,并能很快的用其他语言写出来,最后祝你成功~~

2011-07-23

蚁群算法--C#实现

这是我在研究蚁群算法选择路由和拥塞避免时,写的一道练习题,蛮有意思的,呵呵~~感兴趣的可以看看

2011-05-14

C#CMatlabSQL函数查询器

自己学ADO.NET时写的一个,实现函数分级存储和查询,方便,小巧,可以添加各类函数,不过的由自己添加,我只是做了个平台。就像我是做仓库的,自己填东西吧~~

2011-03-05

美女时钟浮窗(可以反弹的)

写的玩的,实现的是一个在屏幕上漂来飘去的窗口可以反弹,上面还有美女~~! 时间、日期、星期,有兴趣的可以下在的玩玩哦~~

2010-11-23

求物理试验中的不确定度(含源代码)

自己花了点时间写的,看着同学计算不确定度很困难,遍写了这个,希望对需要的同学有所帮助,里面含源代码,感兴趣的同学可以下载下来研究研究~~

2010-11-11

用C#写ATM取款机程序

用C#写的ATM取款机,模拟取款的过程,有兴趣的可以下去研究研究

2010-11-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除