自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (8)
  • 收藏
  • 关注

原创 kotlin 之于 java 的差异

一.变量声名,赋值和访问kotlin 变量是空安全的,一般要求声明时就赋值。声名变量有两个关键字var和val,其中val相当于 java 的中的final。变量类型可显式给出,也可隐式推断。变量也可分可空类型和非空类型。以下给出几种声名和初始化示例说明var a:String="hello" //显式声明String 类型变量private var b="hello" //隐式声明,可推断

2017-09-04 22:41:24 315

原创 全局监控 click 点击事件的四种方式

本文主要给大家分享如何在全局上去监听 click 点击事件,并做些通用处理或是拦截。使用场景可能就是具体的全局防快速重复点击,或是通用打点分析上报,用户行为监控等。以下将以四种不同的思路和实现方式去监控全局的点击操作,由简单到复杂逐一讲解。方式一,适配监听接口,预留全局处理接口并作为所有监听器的基类使用抽象出公共基类监听对象,可预留拦截机制和通用点击处理,简要代码如下:public abstract

2017-08-13 20:04:33 5407

原创 全局监控 click事件的四种方式

本文主要给大家分享如何在全局上去监听 click 点击事件,并做些通用处理或是拦截。使用场景可能就是具体的全局防快速重复点击,或是通用打点分析上报,用户行为监控等。以下将以四种不同的思路和实现方式去监控全局的点击操作,由简单到复杂逐一讲解。方式一,适配监听接口,预留全局处理接口并作为所有监听器的基类使用抽象出公共基类监听对象,可预留拦截机制和通用点击处理,简要代码如下:public abstract

2017-08-10 00:02:48 3430 1

原创 RecyclerView 全面的源码分析

RecyclerView 概要RecyclerView是Android 5.0开始提供一个可回收容器,它比 ListView更先进灵活更具,可高效重用和滚动,能方便定制各种布局和交互效果。它继承自 ViewGroup,那么它展示和交互也离不开 measure , layout , draw , touch ,adapter 五步。后面将以这五步来抽丝剥茧分析其工作原理,其中 LayoutManage

2017-07-14 07:59:38 528

原创 自定义滑动容器,支持双向滑动和悬停吸顶

介绍PageScrollView是一个继承于ViewGroup的自定义容器类,如其名它支持ScrollView和ViewPager两种滑动效果。无需嵌套LinearLayout,可支持不定宽高的子View视图。支持水平和垂直方向的布局和手势,支持任意子View滑动吸顶或是吸底悬停的交互。支持ViewPager 固有的PageTransform动画和PageChangeListener 等接口

2017-07-12 22:40:30 601

原创 画出 View 的层级 3D 视图和树形图来分析层级关系

HierarchyLayout 介绍HierarchyLayout是一个自定义的ViewGroup工具,用于分析视图的层级关系,并画出层级树的结构图和可交互的3D 层级。可计算出最大层级深度和平均层级,每层分布等信息。还可显示最近一次 measure layout draw 的时间。

2017-07-12 22:37:36 1020

原创 自定义 ViewGroup 集合,高效布局。

WidgetLayout是一组继承于ViewGroup的自定义容器集合,大部分支持描边和内容分割线,为了高效布局,优化层级而生。目前实现了列等分布局ColumnLayout, 支持任意 View 的下拉刷新 NestRefreshLayout, 滑动容器 PageScrollLayout ,标签容器 LabelLayout,嵌套滑动吸顶容器 NestFloatLayout 等。

2017-07-12 22:32:12 1418 2

原创 android 通知栏的实现

最近做一个项目,其中一个要加入的功能是常驻Notification栏,以前写的时候只能出现 在“通知”这一组中,想把它放在“正在运行”组中却不知道怎么放,查了下官方文档,找到了方法,在notification的flags字段中加一下 “FLAG_ONGOING_EVENT”就可以了。同时我也把Notification的使用方法给总结了一下。详见下文:(1)、使用系统定义的Notificat

2012-11-26 14:46:42 11545 1

原创 Android编程中的常见小问题

问题一:-dialog的半透明背景的灰度在我们继承系统dialog实现自己的dialog时,可以通过设置style来实现               @android:color/transparent          @android:color/transparent          0.8                    @android:col

2012-09-10 22:57:41 2856

原创 Android opengles2.0 背景透明

在Android上开发OpenGL ES应用时,默认的背景不透明的,即使使用了glClearColor来设置了不透明度为0,且纹理图片中有透明的部分也可能被GLView的背景填充。那么首先解决GLView的透明背景问题吧。要设置透明的第一步是将GLView所在的Activity中的主题属性设置为:android:theme=”@style/Theme.Translucent” 。这样就可以

2012-09-07 23:46:53 8660 6

转载 OpenGL ES 三种类型修饰 uniform attribute varying

1.uniform变量uniform变量是外部application程序传递给(vertex和fragment)shader的变量。因此它是application通过函数glUniform**()函数赋值的。在(vertex和fragment)shader程序内部,uniform变量就像是C语言里面的常量(const ),它不能被shader程序修改。(shader只能用,不能改)

2012-08-08 17:44:53 12529 1

原创 自定义抽屉 指定把手

SlidingDrawer这个控件顾名思义就像抽屉一样,抽屉里面的东西(content)是对外面隐藏的,只有抽屉的把手(handle)是暴露在外面的。当用户触动把手时,抽屉内隐藏的内容就会呈现。 配置上采用了水平展开或垂直展开两种(android:orientation)方式,在XML里必须指定其使用的android:handle 与android:content,前者委托要展开的图片(Layou

2012-08-05 23:33:50 3173

转载 ES OpenGL10 函数介绍

javax.microedition.khronos.opengles接口GL10上级接口:GL下级接口:GL11公共接口GL10继承于GLGL10接口包含了Java(TM)程序语言为OpenGL绑定的核心功能。OES_byte_coordinates,OES_single_precision,OES_fixed_point,OES_read_format,以及OES_comp

2012-08-03 13:17:18 1329

转载 OpenGL 纹理

大概步骤:1.创建纹理对象,并为他指定一个纹理. 2.确定纹理如何应用到每个像素上. 3.启用纹理贴图 4.绘制场景,提供纹理和几何坐标 过滤:由于我们提供的纹理图像很少能和最终的屏幕坐标形成对应,大小不同,所以需要设置过滤项目.允许我们进行插值或者匀和,指定放大缩小的函数.glTexParameter*(),使用过滤模式GL_NEAREST那么纹理单位最邻近的

2012-07-31 19:49:00 2653

原创 关于Android的触摸消息小结

Android中跟Touch事件有关的事件有三个:    public boolean dispatchTouchEvent(MotionEvent ev):传递Touch事件至target view(可以是自己)。    public boolean onInterceptTouchEvent(MotionEvent ev):在ViewGroup中定义,用于拦截Touch事件的传递。

2012-07-19 16:40:06 792

原创 MFC创建自定义消息

创建自定义消息程序步骤:1:用ClassWard创建一个新project命名为:MessageTest2:此project选单文档,取消Active X支持,取消打印支持,其它默认。finish.3:在菜单中添加一个菜单“测试”其子菜单为"test",并映射其执行方法:OnTest4: 制造消息发送者:在资源中新增一个对话框,并用classward为其创建类名为   TestD

2012-07-15 00:00:59 871

原创 VC画图

1、画笔 有两种形式创建画笔 一是直接通过GetStockObject()函数来调用 二是通过创建画笔来调用  HPEN CreatePen(   int fnPenStyle,    // pen style   int nWidth,        // pen width   COLORREF crColor   // pen color );

2012-07-14 23:59:53 401

原创 vc运行可执行文件的三个API

一>.WinExec   类似System()命令行。原型:UINT WinExec(  LPCSTR lpCmdLine,  // address of command line  UINT uCmdShow      // window style for new application);用于十六位操作系统及兼容系统.例如:WinExec("notepad.e

2012-07-14 23:58:49 536

原创 文件操作

1.文件的查找   当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。   CString strFileTitle;   CFileFind finder;   BOOL bWorking = finder.FindFile("C:

2012-07-14 23:57:22 449

原创 CfileDlg与文件操作

构造CFileDialog ST对象。可以传送最常用的参数(parameters)到参数列表(argument list)。//参数://        [IN]    bOpenFileDialog//                设置成TRUE构造一个打开文件对话框,FALSE为保存文件对话框。//        [IN]    lpszDefExt//

2012-07-14 23:56:29 2872

原创 显示位图

一。显示位图,需要做如下工作:void  类名::ShowMap(){CStatic* pStatic=(CStatic*)GetDlgItem(IDC_DISPLAY2);///据待贴位图的控件ID得到它的控制对象。CDC* pDC=pStatic->GetDC();//待贴位图的控件的dcCBitmap bitmap;bitmap.LoadBitmap(IDB_BI

2012-07-14 23:55:00 683

原创 读bmp文件信息结构

CString bmpfileName;  //bmp图像路径。CFile bitmapFile;  //文件操作类。bitmapFile.Open(fileName,CFile::modeRead)  //打开图像文件。 BITMAPFILEHEADER m_pBmpFileHeader=(BITMAPFILEHEADER*) new char [sizeof(BITMAPF

2012-07-14 23:53:48 543

原创 位图结构

BMP文件结构     1. BMP文件组成     BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。     2. BMP文件头     BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。     其结构定义如下:typedef struct tagBITMAPFILEHEADER{WORDbfType; // 位图文件的类型,

2012-07-14 23:52:42 398

原创 控制台输入函数的用法

附:cin.ignore();cin.get()//跳过一个字符,例如不想要的回车,空格等字符1、cin>>          用法1:最基本,也是最常用的用法,输入一个变量: cin>> 是会过滤掉不可见字符(如 空格 回车,TAB 等) cin>>noskipws>>input[j];//不想略过空白字符,那就使用 noskipws 流控制2、cin.get()用法1: cin

2012-07-14 23:50:35 864

原创 拷贝构造函数和赋值运算符

重点:包含动态分配成员的类 应提供拷贝构造函数,并重载"="赋值操作符。以下讨论中将用到的例子:class CExample{public:    CExample(){pBuffer=NULL; nSize=0;}    ~CExample(){delete pBuffer;}    void Init(int n){ pBuffer=new char[n]; nSi

2012-07-14 23:48:55 304

原创 Const修饰符作用

1.1.1. 定义普通常量const double PI = 3.1414926;const int POOL_SIZE = 20;定义常量有三种方法:宏、const、enum,其中宏应该尽量避免,而const与enum也各有优缺点,最大的区别就是enum只能用于定义整数,而不能定义浮点数;而对于定义逻辑关系较近的一组整数时比较适合使用enum,也可以考虑使用类代替enum。常量必

2012-07-14 23:34:00 1138

原创 函数指针

一.函数指针变量的申明    就象某一数据变量的内存地址可以存储在相应的指针变量中一样,函数的首地址也以存储在某个函数指针变量里的。这样,我就可以通过这个函数指针变量来调用所指向的函数了。    在C系列语言中,任何一个变量,总是要先申明,之后才能使用的。声明形式:函数返回类型+(* 函数指针名)+(函数的参数表)。如声名一个返回值为void具有一个int型的参数的函数指针如下: vo

2012-07-14 23:32:25 513

原创 PlaySound详解

PlaySound函数的声明为:BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);PlaySound(NULL,NULL,NULL);停止播放。 参数pszSound是指定了要播放声音的字符串(一般是绝对路径,如果把声音文件拷到可执行文件所在路径就可以直接用声音文件名),该参数可以是WAVE文件的名字,或是WA

2012-07-14 23:29:44 20938 6

原创 获取IP地址

要获取IP地址,首先必须得到机器的主机名(hostname),调用gethostname就可以实现,有了主机名,接下来调用gethostbyname来获取包括IP地址在内的更多的主机信息。gethostbyname返回一个指向hostent数据结构的指针,这个结构在文件中是这样定义的:   //   由go to definition 知  struct     hostent   {

2012-07-14 23:27:07 753

原创 VC中网络编程的常用函数及UDP,TCP协议编程步骤

1.SOCKET类型SOCKET是socket套接字类型,在WINSOCK2.H中有如下定义:typedef unsigned int    u_int;typedef u_int           SOCKET;可知套接字实际上就是一个无符号整型,它将被Socket环境管理和使用。套接字将被创建、设置、用来发送和接收数据,最后会被关闭。2.WORD类型、MAKEWORD、L

2012-07-14 23:23:55 880

原创 MFC通过ADO连SQL2000数据库

和连接Oracle差不多,操作有点不一样呗!1.在StdAfx.h头文件中加入此句子#import "c:\program files\common files\system\ado\msado15.dll"\no_namespace rename("EOF","adoEOF")2.在App类的InitInstance()函数中加入::CoInitialize(NULL);//表示

2012-07-14 23:21:25 970

原创 对话框调用与背景小结

模态对话框的调用通常如下:CDialog dia;dia.DoModal();而非模态对话框的调用如下:CDialog *pDia;pDia=new CDialog;pDia.Create(IDD_DIALOG,this);pDia.ShowWindow(SW_SHOW);通常我们可以把pDia这个指针设为对话框所在类的成员变量,或者在类中重载PostNcDestr

2012-07-14 23:08:16 550

原创 排序小结

排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。     第一部分是简单排序算法,后面你将看到他们的共同点是算法复杂度为O(N*N)(因为没有使用word,所以无法打出上标和下标)。     第二部分是高级排序算法,复杂度为O(Log2(N))。这里我们只介绍一种算法。另外还有几种算法因为涉及树与堆的概念,所以这里不于讨论。

2012-07-14 11:42:20 688

原创 vc找不到MFC42D.DLL文件

在VC环境下编的程序在VS平台上运行时(默认是DEBUG版编译)会出现报错:找不到MFC42D.DLL及fatal error LNK1103: debugging information corrupt; recompile module 其实一般在编程序时,都是生成了调试版的程序,就是在那个Debug目录下的可执行文件。运行这调试版的exe文件,都会动态连接 MFC42D.DLL和MS

2012-07-14 11:39:39 2719

原创 CString,TCHAR ,string,char等数据类型转换

由于我习惯用的是VS2008,也提醒初用它的朋友: VS中默认的是在UNICODE字符编码,所以字符串数据要用(TEXT)或_T转换下如:CString str=_T("good luck with you!");。平时我们用到的一些数据类型需要转换才可以正常使用,下面简单的介绍下常用的数据类型转换:string 转 CStringCString.format(”%s”, string.c

2012-07-14 11:33:16 672

Android OpenGL Earth 旋转地球

通过OpenGL画一个球体,并将给出的一张平面地球图片通过纹理贴图方式均匀的绘制到球体上,可以通过触摸来控制地球的旋转。 看上去就像真实的3D地球。生成球体的原理在代码中有注释。

2012-08-05

自定义百度地图

基于百度地图API开发 可以自定义任何标记 并可以搜索得到自定义标记。还可以显示路线方案及距离。

2012-07-14

基于Android平台的相册管家

相册管家系统借助Android平台,采用异步加载图片、软引用缓存,手势识别和图片处理等技术。实现了图片的搜索,排序,应用,删除,浏览和拍照等功能,图片浏览支持滑动切换,双击放大,触摸缩放和幻灯播放等操作。程序界面美观大方,操作简捷,运行高效,交互友好。

2012-07-14

Win32API 和MFC类库详解

WINDOWS API 详解 和MFC类库详解,两个文件格式都是.chm的 很好用的哦!

2011-06-08

俄罗斯方块 完美MFC实现

经典俄罗斯方块完美实现,界面美观,菜单可动态伸缩.有声音效果!MFC所编写,代码简短易懂!

2011-05-22

对对碰 MFC实现 有源码

模拟腾讯的对对碰游戏,基本功能已经实现.有声音效果,可以按F1 F2 F3 F4 F5来运行各功能或右键菜单来体验各种功能

2011-05-22

迷宫探路可视化MFC实现

迷宫探路可视化实现,可以从文件中加载不同难度的迷宫数据,也可以自己编辑迷宫并保存到文件中下次加载! 对于自己编辑的迷宫可以检测是否存在通路!

2011-05-22

Framer以太网802.3的封装

模拟802.3以太网帧进行封装,且采用8位CRC校验. 校验多项式为X^8+X^2+X+1.

2011-02-28

空空如也

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

TA关注的人

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