<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[renai2008的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/renai2008</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; renai2008]]></copyright><item><title><![CDATA[kotlin 之于 java 的差异]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/77844452</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/77844452</guid><author>renai2008</author><pubDate>Mon, 04 Sep 2017 22:41:24 +0800</pubDate><description><![CDATA[一.变量声名，赋值和访问kotlin 变量是空安全的，一般要求声明时就赋值。声名变量有两个关键字var和val,其中val相当于 java 的中的final。变量类型可显式给出，也可隐式推断。变量也可分可空类型和非空类型。以下给出几种声名和初始化示例说明var a:String="hello"   //显式声明String 类型变量
private var b="hello"  //隐式声明，可推断]]></description><category></category></item><item><title><![CDATA[全局监控 click 点击事件的四种方式]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/77149484</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/77149484</guid><author>renai2008</author><pubDate>Sun, 13 Aug 2017 20:04:33 +0800</pubDate><description><![CDATA[本文主要给大家分享如何在全局上去监听 click 点击事件，并做些通用处理或是拦截。使用场景可能就是具体的全局防快速重复点击，或是通用打点分析上报，用户行为监控等。以下将以四种不同的思路和实现方式去监控全局的点击操作，由简单到复杂逐一讲解。方式一，适配监听接口,预留全局处理接口并作为所有监听器的基类使用抽象出公共基类监听对象，可预留拦截机制和通用点击处理，简要代码如下：public abstract]]></description><category></category></item><item><title><![CDATA[全局监控 click事件的四种方式]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/77018602</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/77018602</guid><author>renai2008</author><pubDate>Thu, 10 Aug 2017 00:02:48 +0800</pubDate><description><![CDATA[本文主要给大家分享如何在全局上去监听 click 点击事件，并做些通用处理或是拦截。使用场景可能就是具体的全局防快速重复点击，或是通用打点分析上报，用户行为监控等。以下将以四种不同的思路和实现方式去监控全局的点击操作，由简单到复杂逐一讲解。方式一，适配监听接口,预留全局处理接口并作为所有监听器的基类使用抽象出公共基类监听对象，可预留拦截机制和通用点击处理，简要代码如下：public abstract]]></description><category></category></item><item><title><![CDATA[RecyclerView 全面的源码分析]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/75095202</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/75095202</guid><author>renai2008</author><pubDate>Fri, 14 Jul 2017 07:59:38 +0800</pubDate><description><![CDATA[RecyclerView 概要RecyclerView是Android 5.0开始提供一个可回收容器，它比 ListView更先进灵活更具，可高效重用和滚动，能方便定制各种布局和交互效果。它继承自 ViewGroup,那么它展示和交互也离不开 measure , layout , draw , touch ,adapter 五步。后面将以这五步来抽丝剥茧分析其工作原理，其中 LayoutManage]]></description><category></category></item><item><title><![CDATA[自定义滑动容器，支持双向滑动和悬停吸顶]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/75041990</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/75041990</guid><author>renai2008</author><pubDate>Wed, 12 Jul 2017 22:40:30 +0800</pubDate><description><![CDATA[介绍PageScrollView是一个继承于ViewGroup的自定义容器类，如其名它支持ScrollView和ViewPager两种滑动效果。无需嵌套LinearLayout，可支持不定宽高的子View视图。支持水平和垂直方向的布局和手势，支持任意子View滑动吸顶或是吸底悬停的交互。支持ViewPager 固有的PageTransform动画和PageChangeListener 等接口]]></description><category></category></item><item><title><![CDATA[画出 View 的层级 3D 视图和树形图来分析层级关系]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/75041958</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/75041958</guid><author>renai2008</author><pubDate>Wed, 12 Jul 2017 22:37:36 +0800</pubDate><description><![CDATA[HierarchyLayout 介绍HierarchyLayout是一个自定义的ViewGroup工具，用于分析视图的层级关系，并画出层级树的结构图和可交互的3D 层级。可计算出最大层级深度和平均层级，每层分布等信息。还可显示最近一次 measure layout draw 的时间。]]></description><category></category></item><item><title><![CDATA[自定义 ViewGroup 集合，高效布局。]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/75041919</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/75041919</guid><author>renai2008</author><pubDate>Wed, 12 Jul 2017 22:32:12 +0800</pubDate><description><![CDATA[WidgetLayout是一组继承于ViewGroup的自定义容器集合，大部分支持描边和内容分割线，为了高效布局，优化层级而生。目前实现了列等分布局ColumnLayout, 支持任意 View 的下拉刷新 NestRefreshLayout, 滑动容器 PageScrollLayout ，标签容器 LabelLayout，嵌套滑动吸顶容器 NestFloatLayout 等。]]></description><category></category></item><item><title><![CDATA[android 通知栏的实现]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/8225805</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/8225805</guid><author>renai2008</author><pubDate>Mon, 26 Nov 2012 14:46:42 +0800</pubDate><description><![CDATA[最近做一个项目，其中一个要加入的功能是常驻Notification栏，以前写的时候只能出现 在“通知”这一组中，想把它放在“正在运行”组中却不知道怎么放，查了下官方文档，找到了方法，在notification的flags字段中加一下 “FLAG_ONGOING_EVENT”就可以了。同时我也把Notification的使用方法给总结了一下。详见下文：

(1)、使用系统定义的Notificat]]></description><category></category></item><item><title><![CDATA[Android编程中的常见小问题]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7965027</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7965027</guid><author>renai2008</author><pubDate>Mon, 10 Sep 2012 22:57:41 +0800</pubDate><description><![CDATA[问题一：-dialog的半透明背景的灰度

在我们继承系统dialog实现自己的dialog时，可以通过设置style来实现
       
        @android:color/transparent  
        @android:color/transparent  
        0.8  
       
   
        @android:col]]></description><category></category></item><item><title><![CDATA[Android opengles2.0 背景透明]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7956988</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7956988</guid><author>renai2008</author><pubDate>Fri, 07 Sep 2012 23:46:53 +0800</pubDate><description><![CDATA[在Android上开发OpenGL ES应用时，默认的背景不透明的，即使使用了glClearColor来设置了不透明度为0，且纹理图片中有透明的部分也可能被GLView的背景填充。
那么首先解决GLView的透明背景问题吧。
要设置透明的第一步是将GLView所在的Activity中的主题属性设置为：android:theme=”@style/Theme.Translucent” 。这样就可以]]></description><category></category></item><item><title><![CDATA[OpenGL ES 三种类型修饰  uniform attribute varying]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7844495</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7844495</guid><author>renai2008</author><pubDate>Wed, 08 Aug 2012 17:44:53 +0800</pubDate><description><![CDATA[1.uniform变量
uniform变量是外部application程序传递给（vertex和fragment）shader的变量。因此它是application通过
函数glUniform**（）函数赋值的。在（vertex和fragment）shader程序内部，uniform变量就像是C语言里面
的常量（const ），它不能被shader程序修改。（shader只能用，不能改）]]></description><category></category></item><item><title><![CDATA[自定义抽屉 指定把手]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7833362</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7833362</guid><author>renai2008</author><pubDate>Sun, 05 Aug 2012 23:33:50 +0800</pubDate><description><![CDATA[SlidingDrawer这个控件顾名思义就像抽屉一样，抽屉里面的东西(content)是对外面隐藏的，只有抽屉的把手（handle）是暴露在外面的。当用户触动把手时，抽屉内隐藏的内容就会呈现。 配置上采用了水平展开或垂直展开两种（android:orientation）方式，在XML里必须指定其使用的android:handle 与android:content，前者委托要展开的图片（Layou]]></description><category></category></item><item><title><![CDATA[ES OpenGL10 函数介绍]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7826688</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7826688</guid><author>renai2008</author><pubDate>Fri, 03 Aug 2012 13:17:18 +0800</pubDate><description><![CDATA[javax.microedition.khronos.opengles
接口GL10
上级接口：GL
下级接口：GL11
公共接口GL10继承于GL
GL10接口包含了Java（TM）程序语言为OpenGL绑定的核心功能。OES_byte_coordinates,OES_single_precision,OES_fixed_point,OES_read_format,以及OES_comp]]></description><category></category></item><item><title><![CDATA[OpenGL 纹理]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7815769</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7815769</guid><author>renai2008</author><pubDate>Tue, 31 Jul 2012 19:49:00 +0800</pubDate><description><![CDATA[大概步骤:

1.创建纹理对象,并为他指定一个纹理. 

2.确定纹理如何应用到每个像素上. 

3.启用纹理贴图 
4.绘制场景,提供纹理和几何坐标 

过滤:由于我们提供的纹理图像很少能和最终的屏幕坐标形成对应,大小不同,所以需要设置过滤项目.允许我们进行插值或者匀和,指定放大缩小的函数.glTexParameter*(),使用过滤模式GL_NEAREST那么纹理单位最邻近的]]></description><category></category></item><item><title><![CDATA[关于Android的触摸消息小结]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7763821</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7763821</guid><author>renai2008</author><pubDate>Thu, 19 Jul 2012 16:40:06 +0800</pubDate><description><![CDATA[Android中跟Touch事件有关的事件有三个：
　　　　public boolean dispatchTouchEvent(MotionEvent ev)：传递Touch事件至target view（可以是自己）。
　　　　public boolean onInterceptTouchEvent(MotionEvent ev)：在ViewGroup中定义，用于拦截Touch事件的传递。]]></description><category></category></item><item><title><![CDATA[MFC创建自定义消息]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7747873</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7747873</guid><author>renai2008</author><pubDate>Sun, 15 Jul 2012 00:00:59 +0800</pubDate><description><![CDATA[创建自定义消息程序步骤：
1：用ClassWard创建一个新project命名为：MessageTest
2：此project选单文档，取消Active X支持，取消打印支持，其它默认。finish.
3：在菜单中添加一个菜单“测试”其子菜单为"test"，并映射其执行方法：OnTest
4: 制造消息发送者：在资源中新增一个对话框，并用classward为其创建类名为
   TestD]]></description><category></category></item><item><title><![CDATA[VC画图]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7747870</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7747870</guid><author>renai2008</author><pubDate>Sat, 14 Jul 2012 23:59:53 +0800</pubDate><description><![CDATA[1、画笔 

有两种形式创建画笔 

一是直接通过GetStockObject()函数来调用 

二是通过创建画笔来调用 

 HPEN CreatePen( 
  int fnPenStyle,    // pen style 
  int nWidth,        // pen width 
  COLORREF crColor   // pen color 
);]]></description><category></category></item><item><title><![CDATA[vc运行可执行文件的三个API]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7747867</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7747867</guid><author>renai2008</author><pubDate>Sat, 14 Jul 2012 23:58:49 +0800</pubDate><description><![CDATA[一>.WinExec   类似System()命令行。
原型:
UINT WinExec(
  LPCSTR lpCmdLine,  // address of command line
  UINT uCmdShow      // window style for new application
);
用于十六位操作系统及兼容系统.
例如:
WinExec("notepad.e]]></description><category></category></item><item><title><![CDATA[文件操作]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7747863</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7747863</guid><author>renai2008</author><pubDate>Sat, 14 Jul 2012 23:57:22 +0800</pubDate><description><![CDATA[1．文件的查找 
　　当对一个文件操作时，如果不知道该文件是否存在，就要首先进行查找。MFC中有一个专门用来进行文件查找的类CFileFind，使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。 
　　CString strFileTitle; 
　　CFileFind finder; 
　　BOOL bWorking = finder.FindFile("C:]]></description><category></category></item><item><title><![CDATA[CfileDlg与文件操作]]></title><link>https://blog.youkuaiyun.com/renai2008/article/details/7747860</link><guid>https://blog.youkuaiyun.com/renai2008/article/details/7747860</guid><author>renai2008</author><pubDate>Sat, 14 Jul 2012 23:56:29 +0800</pubDate><description><![CDATA[构造CFileDialog ST对象。
可以传送最常用的参数(parameters)到参数列表(argument list)。
//参数：
//        [IN]    bOpenFileDialog
//                设置成TRUE构造一个打开文件对话框，FALSE为保存文件对话框。
//        [IN]    lpszDefExt
//]]></description><category></category></item></channel></rss>