自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wk的博客

记录自己的成长吧

  • 博客(43)
  • 收藏
  • 关注

转载 彻底搞懂Android文件存储---内部存储,外部存储以及各种存储路径解惑

前言:对于任何一个应用来说,无论是PC端应用还是...

2020-04-07 12:52:04 2489

原创 ArrayList初探

总结:ArrayList底层是基于数组无参数是实例的时候容器大小是为0,添加元素的时候容器大小最小为10add方法是先检查是否扩容,然后加入到数组最后add(index ,e)方法是先检查index的值是否符合要求,然后再扩容,接着把index到最后的所有元素都移到自己后一位的位置,最后再把需要加入的值加入到index位置中扩容机制为首先扩容为原始容量的 1.5 倍。...

2019-04-29 21:37:32 158

原创 RxJava1.x操作符初探之defer

关于defer这个操作符,RxJava实战是这样解释的:知道有观察者订阅时才创建Observable,并且为每个观察者创建一个全新的Observabledefer操作符会一直等待直到有观察者订阅它,然后它使用Observable工厂方法生成一个Observable。它对每个观察者都这样做,因此尽管每个订阅者都以为自己订阅的是同一个Observable,但事实上每个订阅者获取的是它们自己单独的数...

2019-04-19 19:39:07 373

原创 RecyclerView 初探——绘制流程

参考文章:https://www.jianshu.com/p/c52b947fe064总结:RecyclerView它的绘制其实是交给了LayoutManager处理,如果没有设置,则不会测量子View。如果RecyclerView是固定的长宽,在OnMeasure中是不会测量子View的,而是会在onLayout中测量绘制其实会区分正向绘制和倒置绘制绘制的过程是先确定一个瞄点,然...

2019-03-26 15:23:36 339

原创 ListView.setAdapter流程以及缓存机制

1. ListView数据显示的流程分析我们往往放入数据就直接这样:listView.adapter=adapter实现机制到底是怎么样的呢,那么我们来看看listView的setAdapter方法是怎么实现的吧:ListView.java public void setAdapter(ListAdapter adapter) { .... requestLayo...

2019-03-24 17:23:26 5629 1

原创 Toast初探

总结:首先Toast的make方法主要就是封装TN(Binder)这个对象,这里有几点需要注意Toast默认的是TextView,必须需要有个显示信息的UI,否则会报错当前线程必须有相对应的Looper,否则报错,因为里面的显示机制还是跟Handler有关的,主线程是默认有MainLooper的show方法:其实是系统内部维护着一个队列,通过不断的从该队列中取出ToastRecor...

2019-03-23 10:14:13 174

原创 RxJava1.x中的subscribeOn,observeOn到底做了些什么

注:文中的OnSubscribe1,OnSubscribe2,Observable1等等命名是通过出现的时序来命名的,越大说明越晚出现我们先来举个例子吧:Observable.create(object : Observable.OnSubscribe<String> { override fun call(it: Subscriber<in Stri...

2019-03-21 17:57:19 584

原创 RxJava1.x操作符初探之map

我们先来看看map操作符: Observable.just(1, 2, 3) .map(object : Func1<Int, String> { override fun call(t: Int?): String { return t.toString() } ...

2019-03-21 15:26:58 137

原创 RxJava1.x初探

以下例子基于RxJava1.x:先来个最简单的用法: Observable.create(object:Observable.OnSubscribe<String>{ override fun call(t: Subscriber<in String>?) { t.onNext("1") ...

2019-03-19 15:56:50 137

转载 安装git失败 fatal: open /dev/null or dup failed: No such file or directory

转https://blog.csdn.net/weixin_40877388/article/details/80911499现象:执行git-bash文件,闪退,且出现mintty.exe.stackdump文件。             cmd运行git命令,报错:fatal:open /dev/null or dup failed: No such file or directory...

2018-10-11 12:20:50 1257

转载 ListView使用小技巧

1.设置分割线高度和颜色android:divider=”@android:color/darker_gray” android:dividerHeight=”10dp” 2.隐藏滚动条 android:scrollbars="none"3.取消点击效果(5.x以上是波纹)android:listSelector=”@android:color/transparen...

2018-05-30 14:22:14 125

原创 android 消息传递机制

1 源码分析handler构造函数:public Handler() { this(null, false); }public Handler(Callback callback) { this(callback, false); }public Handler(Looper looper) { this(loope...

2018-05-03 19:29:35 269

原创 SparseArray源码分析

源码分析首先来看构造函数: public SparseArray() { this(10); } public SparseArray(int initialCapacity) { if (initialCapacity == 0) { mKeys = EmptyArray.INT; mVa...

2018-05-01 09:27:48 193

原创 Hashtable分析

1.源码分析首先我们来看构造函数:public Hashtable(int initialCapacity, float loadFactor) { if (initialCapacity &lt; 0) throw new IllegalArgumentException("Illegal Capacity: "+ ...

2018-04-30 14:39:49 178

原创 HashMap源码分析(Android 25)

以下代码基于Android 25,对于HashMap,Android 25与Android 26 不同,Android 26与Java8一样的1.源码分析先看其构造函数:public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity &lt; 0) t...

2018-04-29 22:07:34 195

原创 android 坐标那点事

MotionEvent坐标:getX:触点相对于所在View左上角的坐标的x值getY:触点相对于所在View左上角的坐标的y值getRawX:触点相对于屏幕左上角的坐标的值getRawY:触点相对于屏幕左上角的坐标的y值View坐标getX()与getY()方法获取的是View左上角相对于父容器左上角的坐标,当View没有发生平移操作时,getX()==getLeft()、getY==getTo...

2018-04-11 20:13:37 157

原创 策略模式(Strategy)

定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,使得算法可以在不影响到客户端的情况下发生变化。意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。主要解决:在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护。何时使用:一个系统有许多许多类,而区分它们的只是他们直接的行为如何解决:将这些算法封装成一个一个的类,任意地替换。...

2018-04-08 20:35:05 139

原创 android include、merge、viewSub

1.include:说明:提高include里面布局的复用,便于对相同视图内容进行统一的控制管理,提高布局重用性。然而,使用标签总有一些值得我们注意的地方。使用include最常见的问题就是findViewById查找不到目标控件,这个问题出现的前提是在include时设置了id,而在findViewById时却用了被include进来的布局的根元素id.当include有id,且与inc...

2018-04-08 10:33:23 2951 2

原创 java中的\uxxxx

\uxxxx:其中xxxx表示一个16进制数字 这种格式是unicode码的写法表示一个char字符在java中Character最小值即Character.MIN_VALUE=”\u0000”,char的默认值是\u0000,Character默认为null,比如\u3000就代表象形文字的空格,各个代表的含义:https://unicode-table.com/cn/...

2018-04-01 09:08:54 10384 2

原创 java &&,& 、|、||运算区别

public class Main { public static void main(String[] args) { //&amp;&amp;,&amp;,||,|区别 System.out.println("||: "); if(returnTrue1() || returnTrue2()){ ...

2018-04-01 09:07:10 103

转载 CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...

2018-04-01 09:05:54 117

原创 git commit 后Warning: your console front probably doesn`t

Git commit -m 中文后弹出Warning: your console front probably doesn`t。。。这样的警告这时候只要输入git config  core.quotepath offgit config  --unset i18n.logoutputencodinggit config  --unset i18n.commitencoding就不会了...

2018-03-31 08:29:34 205

原创 构建者模式

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。组装复杂的实例情景:假设构造函数中有很多参数,有些是必须有的,有些是非必须的,这样如果实例化起来就非常麻烦,并且时间久了也容易忘记参数的含义,因为有些参数的类型很有可能是一样的实例化:通常都是new出个实例但如果很多,参数类型都相同,这样就很麻烦了javaBean:这种模式弥补了重叠构造器模式的不足。创建实例很容易,这...

2018-03-30 18:42:22 820

原创 桥接模式(Bridge)

定义:桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。说明:将类的功能层次结构与实现层次结构分离类的功能层次与类的实现层次结构:类的功能层次结构:简单的说就是继承父类,增加父类没有的功能类的实现层次结构:简单的就是继承结构或者是抽象的父类,实现定义好的方法类图:代码:https...

2018-03-29 19:28:22 166

原创 android res---color

2018.3.27:Color.RED的值就是0xFFFF0000,一它为例,很明显,这是16进制的数,F代表16,前两个字母表示是透明度,FF---&gt;16*16=256,透明度的范围是0-255色相图:互补色:通过实验得出,已Color.RED为例,它的值为0xFFFF0000,互补色为0xFF00FFFF,这两个值有什么关系呢,除去那表示透明度的两位,其它位的值两个加起来正好是F,自己也...

2018-03-27 12:11:55 429

原创 原型模式

定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象说明:通过clone方法来拷贝原对象,值的注意的是,拷贝后的对象与原对象并不是同一个对象,这个可以通过equal方法来验证,这点也可以说是与享元模式的区别吧,在生活中,细胞分裂这个可以说是原型模式的一种具体表现吧,或者复印的卷子等等,clone也分为浅拷贝和深拷贝,kotlin中的Any类中是没有clone方法的,所以这例子都是用...

2018-03-26 21:10:00 124

原创 单例模式

参考http://cantellow.iteye.com/blog/838473;公众号:程序员小灰懒汉式线程不安全:这种写法lazy loading很明显,但是致命的是在多线程不能正常工作。需要的时候才会实例化线程安全:对比上一中,就多个Synchronized关键字,这种写法能够在多线程中很好的工作,而且看起来它也具备很好的lazy loading,但是,遗憾的是,效率很低,99%情况下不需要...

2018-03-20 21:09:53 116

原创 工厂模式——简单,工厂,抽象

简单工厂模式:(参考https://www.jianshu.com/p/a9f397c4ff98)定义:提供一个创建对象实例的功能,而无需关心其具体实现。被创建实例的类型可以使接口、抽象类,也可以是具体的类。简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例说...

2018-03-19 21:11:20 143

原创 Adapter(适配器)模式

适配器模式有两种:委托和继承,在我看来,继承其实也可以理解为委托,相当于委托自己的父类在适配器模式中,被适配者和适配器耦合性非常强列子:我们这标准电压都是220v,但大部分电器的使用电压都比220小的多。220就是现有的,我们需要的则是其它大小的电压意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,...

2018-03-12 21:00:04 514

原创 Git 上传文件遇到的问题

出现的错误提示error:failed to push some refs to ....我们再github上建立仓库的时候如果勾选了Initialize this repository with a README然后在经过一系列的操作这时候就会出现这个错误这时候该怎么解决呢?我们先Git pull origin master 然后出现下面的界面(Ps:git 在pull或者合并分支的时候有时会遇...

2018-03-12 20:55:43 1563 5

原创 自定义android偏好界面——Preference解析与自定义

    Preference用于android设置偏好界面,像设置界面就是用这个写的,其实就是xml文件,放在res/xml中,方便简单,如果直接用,有时候不符合自己App的风格、主题。下面我们就以android.support.v7.preference.ListPreference为例:上面就是ListPreference的所有属性,这里有个问题,mValueSet又是什么:mValueSet...

2018-03-11 16:27:19 8744 3

原创 python 三引号

如上图所示最外面为“的三个引号,那么里面如果是‘,则输出的是\’,如果是“,则原样输出

2017-08-20 20:16:56 545

原创 VLC搭建RTSP服务器

参考 http://blog.csdn.net/beitiandijun/article/details/9232405首先,我不知道这算不算是叫搭建RTSP服务器,上面这篇文章是用这个标题。第一步,打开VLC客户端,这个客户端可以作为RTSP服务器,媒体》》流》》文件》》添加,添加一本地的视频文件然后点击右下角的串流》》下一个,到下图这个界面,新目标选RTSP,本

2017-08-11 13:35:27 2907

原创 SetTextSize(),getTextSize()单位问题

TextView .setTextSize()单位为spTextView.getTextSize()单位为pxPaint.getTextSize(),Paint.setTextSize()单位为px

2017-07-24 16:44:07 2280

原创 android wifi调试

先用数据线连接好手机,然后在命令行里面定位到adb.exe所在的文件夹然后在命令行里输入ping (手机的ip地址)如下图所示:这说明能连上这个ip,紧接着 输入 adb connect (手机ip地址)如果出现上面这样的结果,说明连接成功,这时候返回android studio 的android monitor可以看到两个一样的驱动,一个是通过wifi连接,一个是通过us

2017-07-18 13:50:10 341

原创 android button 一些属性

android:enabled="false" 按钮变灰,不可点击在java文件中设置but.setEnabled(false);

2017-06-22 10:32:04 539

原创 View.setActivited()方法

Changes the activated state of this view. A view can be activated or not. Note that activation is not the same as selection. Selection is a transient property, representing the view (hierarchy) the us

2017-06-20 10:15:40 3354

转载 TypedArray实例对象的getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解

这三个函数返回的都是绝对尺寸(px???),而不是相对尺寸(dp\sp等)。如果getDimension()返回结果是20.5f,那么getDimensionPixelSize()返回结果就是21,getDimensionPixelOffset()返回结果就是20。如果想详细的了解http://www.cnblogs.com/android-zcq/p/5138368.html

2017-06-13 21:08:01 2631

转载 java.lang.IllegalStateException:The specified child already has a parent.

就是在fragment中的onCreateView方法中override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater!!.inflate(R.layout.fragment_flight

2017-06-12 16:44:11 202

原创 Paint.getTextBounds (String text, int start, int end, Rect bounds)

这个方法就是把text这文字所在的矩形赋到bounds中???

2017-06-07 14:03:48 529

空空如也

空空如也

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

TA关注的人

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