博客园 - wlrhnh
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=123420
2020-07-07T08:11:11Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
feed.cnblogs.com
https://www.cnblogs.com/wlrhnh/p/11899935.html
给控件添加阴影 - wlrhnh
2019-11-20 19:15:56 代码来自github,忘记是谁写的了,底子不错,适当做了点修改 ShadowContainer 1 package com.example.android_research; 2 3 import android.content.Context; 4 impo
2019-11-20T11:18:00Z
2019-11-20T11:18:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2019-11-20 19:15:56 代码来自github,忘记是谁写的了,底子不错,适当做了点修改 ShadowContainer 1 package com.example.android_research; 2 3 import android.content.Context; 4 impo <a href="https://www.cnblogs.com/wlrhnh/p/11899935.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/11662157.html
Flutter 国际化相关 - wlrhnh
2019-10-12 15:58:05 一、纯SDK实现: 1、直接使用SDK提供的API,代码如下: 2、Delegate及包装类代码: 二、使用Intl库 1、创建一个独立的dart字符串类,便于生产arb文件,如下: 2、Delegate及包装类代码: 3、最终的代码结构图:
2019-10-12T08:07:00Z
2019-10-12T08:07:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2019-10-12 15:58:05 一、纯SDK实现: 1、直接使用SDK提供的API,代码如下: 2、Delegate及包装类代码: 二、使用Intl库 1、创建一个独立的dart字符串类,便于生产arb文件,如下: 2、Delegate及包装类代码: 3、最终的代码结构图: <a href="https://www.cnblogs.com/wlrhnh/p/11662157.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/11520362.html
Flutter Stream相关代码 - wlrhnh
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 // for details. All rights reserved. Use of this source code is governed by a 3 // BSD-style license that can b...
2019-09-14T13:29:00Z
2019-09-14T13:29:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 2 // for details. All rights reserved. Use of this source code is governed by a 3 // BSD-style license that can b... <a href="https://www.cnblogs.com/wlrhnh/p/11520362.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/11506033.html
Flutter中InheritedWidget相关 - wlrhnh
2019-09-11 14:21:09
2019-09-11T06:22:00Z
2019-09-11T06:22:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2019-09-11 14:21:09 <a href="https://www.cnblogs.com/wlrhnh/p/11506033.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/10252080.html
Touch事件分发源码解析 - wlrhnh
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下源码基于Gingerbread 2.3.7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1、先看ViewGroup的dispatchOnTouchEvent(MotionEvent e)的源码 1.1 主要是获取一些坐标
2019-01-10T12:02:00Z
2019-01-10T12:02:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下源码基于Gingerbread 2.3.7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1、先看ViewGroup的dispatchOnTouchEvent(MotionEvent e)的源码 1.1 主要是获取一些坐标 <a href="https://www.cnblogs.com/wlrhnh/p/10252080.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/9135520.html
JNI笔记 - wlrhnh
2018-06-04 19:57:49 这几天研究了一下JNI,其实以前也看过,总感觉理解没那么透彻,这次优化时间看了看,做点记录~ 1、JNI是什么?存在的意义是什么? Java Native Interface,Java本地接口。作用是实现Java代码和Native代码(C、C++、汇编语言)之
2018-06-04T12:57:00Z
2018-06-04T12:57:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2018-06-04 19:57:49 这几天研究了一下JNI,其实以前也看过,总感觉理解没那么透彻,这次优化时间看了看,做点记录~ 1、JNI是什么?存在的意义是什么? Java Native Interface,Java本地接口。作用是实现Java代码和Native代码(C、C++、汇编语言)之 <a href="https://www.cnblogs.com/wlrhnh/p/9135520.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/9117869.html
Android Touch事件相关源码【Android SourceCode 2.3.6】 - wlrhnh
2018-05-31 17:23:46 Note: 这里的源码来自Android 2.3.6,这个版本的代码比较简单,适合理解Touch事件的传递原理。后续版本源码复杂了很多,但是原理都是类似的。 2个方法源码较多,在这里记录下。 View.java 1 /** 2 * Implement this
2018-05-31T09:25:00Z
2018-05-31T09:25:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2018-05-31 17:23:46 Note: 这里的源码来自Android 2.3.6,这个版本的代码比较简单,适合理解Touch事件的传递原理。后续版本源码复杂了很多,但是原理都是类似的。 2个方法源码较多,在这里记录下。 View.java 1 /** 2 * Implement this <a href="https://www.cnblogs.com/wlrhnh/p/9117869.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7445047.html
使用方式比较优雅的代码集合 - wlrhnh
1、自定义Dialog,构造器中使用Theme,如下: 觉得这种方式使用的挺优雅的,比较有意思。 theme_manage_dialog.xml manage_dialog_anim.xml push_up_in.xml push_up_out.xml
2017-08-28T10:01:00Z
2017-08-28T10:01:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】1、自定义Dialog,构造器中使用Theme,如下: 觉得这种方式使用的挺优雅的,比较有意思。 theme_manage_dialog.xml manage_dialog_anim.xml push_up_in.xml push_up_out.xml <a href="https://www.cnblogs.com/wlrhnh/p/7445047.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7389930.html
Android系统中是否开启定位及定位模式的判断 - wlrhnh
1、关于Android系统中不同的定位模式 Android系统中包括3中定位模式: 同时使用GPS、WIFI及基站定位,速度快、精度高,室内定位效果好。 缺点:耗流量、耗电量 只使用WIFI和基站定位,需要WIFI或者基站才行,室内效果好。 缺点:依赖WIFI或基站,精度一般 不依赖WIFI和基站,
2017-08-18T07:31:00Z
2017-08-18T07:31:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】1、关于Android系统中不同的定位模式 Android系统中包括3中定位模式: 同时使用GPS、WIFI及基站定位,速度快、精度高,室内定位效果好。 缺点:耗流量、耗电量 只使用WIFI和基站定位,需要WIFI或者基站才行,室内效果好。 缺点:依赖WIFI或基站,精度一般 不依赖WIFI和基站, <a href="https://www.cnblogs.com/wlrhnh/p/7389930.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7363542.html
Android中软键盘展示、EditText焦点获取及windowSoftInputMode属性探究 - wlrhnh
2017-08-14 21:44:23 有很多中情况,分别展示。 1、Activity不做任何设置,布局使用LinearLayout 会自动滚动EditText之上的所有View,代码: 效果图: 2、Activity不做任何设置,布局使用RelativeLayout、FrameLayout 使用R
2017-08-15T01:59:00Z
2017-08-15T01:59:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2017-08-14 21:44:23 有很多中情况,分别展示。 1、Activity不做任何设置,布局使用LinearLayout 会自动滚动EditText之上的所有View,代码: 效果图: 2、Activity不做任何设置,布局使用RelativeLayout、FrameLayout 使用R <a href="https://www.cnblogs.com/wlrhnh/p/7363542.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7360293.html
较为复杂的实现Parcelable的子类--推荐Android中使用 - wlrhnh
2017-08-14 21:23:34 一个较为复杂的Parcelable实现类
2017-08-14T13:26:00Z
2017-08-14T13:26:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2017-08-14 21:23:34 一个较为复杂的Parcelable实现类 <a href="https://www.cnblogs.com/wlrhnh/p/7360293.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7359873.html
【Java集合系列六】LinkedHashMap解析 - wlrhnh
2017-08-14 16:30:10 1、简介 LinkedHashMap继承自HashMap,能保证迭代顺序,支持其他Map可选的操作。采用双向链表存储元素,默认的迭代序是插入序。重复插入一个已经存在的key不影响此顺序。如果accessOrder参数被使用且置为true,迭代序使用访问序,访问
2017-08-14T11:50:00Z
2017-08-14T11:50:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2017-08-14 16:30:10 1、简介 LinkedHashMap继承自HashMap,能保证迭代顺序,支持其他Map可选的操作。采用双向链表存储元素,默认的迭代序是插入序。重复插入一个已经存在的key不影响此顺序。如果accessOrder参数被使用且置为true,迭代序使用访问序,访问 <a href="https://www.cnblogs.com/wlrhnh/p/7359873.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7265936.html
【Java集合系列五】HashMap解析 - wlrhnh
2017-07-31 19:36:00 一、简介 1、HashMap作用及使用场景 HashMap利用数组+单向链表的方式,实现了key-value型数据的存储功能。HashMap的size永远是2^x的值,主要是为了更加均衡的使用数组位置。 2、存储key-value型数据的数据结构 如下代码,H
2017-07-31T13:59:00Z
2017-07-31T13:59:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2017-07-31 19:36:00 一、简介 1、HashMap作用及使用场景 HashMap利用数组+单向链表的方式,实现了key-value型数据的存储功能。HashMap的size永远是2^x的值,主要是为了更加均衡的使用数组位置。 2、存储key-value型数据的数据结构 如下代码,H <a href="https://www.cnblogs.com/wlrhnh/p/7265936.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7256969.html
【Java集合系列四】HashSet和LinkedHashSet解析 - wlrhnh
2017-07-29 16:58:13 一、简介 1、Set概念 Set可以理解为集合,非常类似数据概念中的集合,集合三大特征:1、确定性;2、互异性;3、无序性,因此Set实现类也有类似的特征。 2、HashSet HashSet继承自AbstractSet,实现了Set接口,但是其源码非常少,也
2017-07-29T09:55:00Z
2017-07-29T09:55:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2017-07-29 16:58:13 一、简介 1、Set概念 Set可以理解为集合,非常类似数据概念中的集合,集合三大特征:1、确定性;2、互异性;3、无序性,因此Set实现类也有类似的特征。 2、HashSet HashSet继承自AbstractSet,实现了Set接口,但是其源码非常少,也 <a href="https://www.cnblogs.com/wlrhnh/p/7256969.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7255710.html
【Java集合系列】目录 - wlrhnh
2017-07-29 13:49:40 一、Collection的全局继承关系 二、系列文章 【Java集合系列一】ArrayList解析 备注: 1、ArrayList本质上就是一个数组,所有对外提供的方法都是对数组操作的封装; 2、比如add操作,先扩容,然后插入到数组中;set操作,本质上就是
2017-07-29T05:52:00Z
2017-07-29T05:52:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2017-07-29 13:49:40 一、Collection的全局继承关系 二、系列文章 【Java集合系列一】ArrayList解析 备注: 1、ArrayList本质上就是一个数组,所有对外提供的方法都是对数组操作的封装; 2、比如add操作,先扩容,然后插入到数组中;set操作,本质上就是 <a href="https://www.cnblogs.com/wlrhnh/p/7255710.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7255674.html
【Java集合系列三】Vector-Stack解析 - wlrhnh
2017-07-29 12:59:14 一、简介 1、Vector继承关系 2、Vector类扩容 Vector类的实现和ArrayList极其相似,都使用数组存储元素,但是扩容策略不一样,ArrayList基本是按照1.5倍的思路扩容,Vector是按照创建Vector对象时设置的capacity
2017-07-29T05:44:00Z
2017-07-29T05:44:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2017-07-29 12:59:14 一、简介 1、Vector继承关系 2、Vector类扩容 Vector类的实现和ArrayList极其相似,都使用数组存储元素,但是扩容策略不一样,ArrayList基本是按照1.5倍的思路扩容,Vector是按照创建Vector对象时设置的capacity <a href="https://www.cnblogs.com/wlrhnh/p/7255674.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7251276.html
【Java集合系列二】LinkedList解析 - wlrhnh
一、简介 1、LinkedList继承关系 2、LinkedList底层实现 LinkedList使用双向链表存储数据,所以没有默认的容量,也不会有扩容一说。只有两个指针,永远指向链表的两端:first和last。定义了一个size属性,用于记录当前存储的元素个数。内部自定义了Node类,如下: 3
2017-07-28T09:00:00Z
2017-07-28T09:00:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】一、简介 1、LinkedList继承关系 2、LinkedList底层实现 LinkedList使用双向链表存储数据,所以没有默认的容量,也不会有扩容一说。只有两个指针,永远指向链表的两端:first和last。定义了一个size属性,用于记录当前存储的元素个数。内部自定义了Node类,如下: 3 <a href="https://www.cnblogs.com/wlrhnh/p/7251276.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7246159.html
【Java集合系列一】ArrayList解析 - wlrhnh
一、基础简介 1、ArrayList继承关系 2、底层用数组来存储数据,数据会在ArrayList创建的时候一并初始化。如果创建ArrayList的时候,没有设置容量,则会delay到第一次add数据时初始化这个数组。 3、默认的初始容量是10 4、System.arrayCopy() ArrayL
2017-07-27T09:31:00Z
2017-07-27T09:31:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】一、基础简介 1、ArrayList继承关系 2、底层用数组来存储数据,数据会在ArrayList创建的时候一并初始化。如果创建ArrayList的时候,没有设置容量,则会delay到第一次add数据时初始化这个数组。 3、默认的初始容量是10 4、System.arrayCopy() ArrayL <a href="https://www.cnblogs.com/wlrhnh/p/7246159.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/7113139.html
演示stop暴力停止线程导致数据不一致的问题,但是有些有趣的发现 (2017-07-03 21:25) - wlrhnh
如注释所言
2017-07-03T13:30:00Z
2017-07-03T13:30:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】如注释所言 <a href="https://www.cnblogs.com/wlrhnh/p/7113139.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/wlrhnh/p/5825311.html
Fragment的startActivityForResult和Activity的startActivityForResult的区别 - wlrhnh
2016-08-30 18:22:33 前提:我们的APP要兼容Api level 11以前的,所以必须用FragmentActivity 1、对于Fragment的,我们很多时候都会在Activity中通过如下方式使用: Fragment是Android3.0以后才引入的东西,为了向下兼容,在su
2016-08-31T03:45:00Z
2016-08-31T03:45:00Z
wlrhnh
https://www.cnblogs.com/wlrhnh/
【摘要】2016-08-30 18:22:33 前提:我们的APP要兼容Api level 11以前的,所以必须用FragmentActivity 1、对于Fragment的,我们很多时候都会在Activity中通过如下方式使用: Fragment是Android3.0以后才引入的东西,为了向下兼容,在su <a href="https://www.cnblogs.com/wlrhnh/p/5825311.html" target="_blank">阅读全文</a>