自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

King的专栏

只是记录一下自己学到,看到的东西,方便以后温习

  • 博客(27)
  • 资源 (4)
  • 收藏
  • 关注

原创 Kotlin协程(上)

1)、并发就是同一时刻只有一条指令在执行,但是因为 CPU 时间片非常的小,多个指令间能够快速的切换,使得我们看起来拥有同时执行的效果,存在于单核或多核 CPU 系统中2)、并行就是同一时刻有多条指令同时在执行,存在于多核 CPU 系统中举个生活中人吃馒头的例子:一个人买了 3 个馒头,那么他同一时刻只能在吃一个馒头,这是并发。而 3 个人每人买了一个馒头,那么同一时刻他们能同时吃馒头,这是并行。并发和并行的区别在于同一时刻是否在同时进行。

2023-04-21 16:52:33 91

转载 Android强行进阶—按键事件&焦点事件攻略

前言对于Android手机APP普通开发者来说,KeyEvent接触相对较少,相反接触较多的应该是TouchEvent。而Android TV开发者对KeyEvent的接触就非常频繁。这也是手机应用和TV应用的主要区别:一个主要响应手指触摸事件,一个响应遥控器按键事件。本文主要基于Android 9.0的源码,踏着巨人的肩膀,进行分析的,个人能力有限,有误请多多指正。篇幅也比较长,对于流程不感兴趣的,可以直接看文末总结。带着疑问学习本文:KeyEvent在Activity、View层次结构是

2021-01-18 14:42:51 540

原创 单行文本自动适配

public class SingleLineTextView extends AppCompatTextView { private Paint mTextPaint; private float mTextSize; public SingleLineTextView(Context context) { this(context, null); } public SingleLineTextView(Context context, Att...

2020-09-22 16:23:36 84

原创 Android控制文字水平间距android:letterSpacing

如果要想实现Android TextView之类的文字保持间距,那么需要设置android:letterSpacing,android:letterSpacing的值是一个浮点数,为标准字体的倍数作为间距。textView 在设置xml中, android:letterSpacing="0.5" 代码中 text.setLetter...

2020-03-10 11:27:50 760

原创 DEX 方法超过64K限制和gradle编译OOM问题解决

如果你是一个android开发者,你至少听说过的Dalvik的蛋疼的64K方法限制。概括地说,在一个DEX文件,你可以调用很多的方法,但你只能调用它们最前面的65,536个 ,因为这是在方法调用集合中的所有的空间了。如果你的源代码和狂拽炫酷叼炸天的三方库中方法超过了这个限制。看这篇文章就对了。UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex

2017-05-22 14:54:20 240

原创 你真的了解AsyncTask?

虽说现在做网络请求有了Volley全家桶和OkHttp这样好用的库,但是在处理其他后台任务以及与UI交互上,还是需要用到AsyncTask。但是你真的了解AsyncTask吗?AsyncTask的实现几经修改,因此在不同版本的Android系统上表现各异;我相信,任何一个用户量上千万的产品绝对不会在代码里面使用系统原生的AsynTask,因为它蛋疼的兼容性以及极高的崩溃率实在让人不敢恭维。

2016-06-13 16:02:32 1438 2

原创 Android Drawable 那些不为人知的高效用法

1、概述Drawable在我们平时的开发中,基本都会用到,而且给大家非常的有用。那么什么是Drawable呢?能够在canvas上绘制的一个玩意,而且相比于View,并不需要去考虑measure、layout,仅仅只要去考虑如何draw(canavs)。当然了,对于Drawable传统的用法,大家肯定不陌生 ,今天主要给大家带来以下几个Drawable的用法:1、自定义Drawab

2016-05-24 10:43:12 4280

转载 Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38377229 ,本文出自【张鸿洋的博客】很多人面试肯定都被问到过,请问Android中的Looper , Handler , Message有什么关系?本篇博客目的首先为大家从源码角度介绍3者关系,然后给出一个容易记忆的结论。1、 概述Handler 、 Lo

2016-05-17 09:26:21 307

原创 Android getWidth和getMeasuredWidth的理解

一、 也许很多同学对getWidth()和getMeasuredWidth()的用法有很多的不解,这两者之间有什么样的不同呢,网上也有各种不同的版本,但大多都大同小异罢了,从这个地方CTRL + C 到另一个地方CTRL + V, 没有把问题说透,也有一部分文章误导了大家对这两个方法的认识,我也是深受其害。这里先纠正下面的一个版本,Baidu上一搜一大堆的,可惜这种说法是错的,所以希望大家就不要再

2016-01-20 11:09:34 377

原创 Android 打造万能的ListView GridView 适配器

1、概述相信做Android开发的写得最多的就是ListView,GridView的适配器吧,记得以前开发一同事开发项目,一个项目下来基本就一直在写ListView的Adapter都快吐了~~~对于Adapter一般都继承BaseAdapter复写几个方法,getView里面使用ViewHolder模式,其实大部分的代码基本都是类似的。本篇博客为快速开发系列的第一篇,将一步一步带您

2015-12-21 13:45:46 479

原创 Android开发中 10个常用工具类

1、日志工具类L.java[java] view plaincopypackage com.zhy.utils;    import android.util.Log;    /**  * Log统一管理类  *   *   *   */  public class L  {        

2015-12-21 10:23:27 475

转载 Android 实现 WheelView

我们都知道,在iOS里面有一种控件------滚筒控件(Wheel View),这通常用于设置时间/日期,非常方便,但Android SDK并没有提供类似的控件。这里介绍一下如何Android实现WheelView。先来看一看iOS中的WheelView的效果图:这个效果不错吧,我们应该如何实现呢?那在Android如果也要实现这样一个效果,应该怎么做呢?

2015-12-10 10:34:09 845

原创 Android Fragment完全解析

我们都知道,Android上的界面展示都是通过Activity实现的,Activity实在是太常用了,我相信大家都已经非常熟悉了,这里就不再赘述。但是Activity也有它的局限性,同样的界面在手机上显示可能很好看,在平板上就未必了,因为平板的屏幕非常大,手机的界面放在平板上可能会有过分被拉长、控件间距过大等情况。这个时候更好的体验效果是在Activity中嵌入"小Activity",然后

2015-11-05 16:02:27 277

原创 Android ListView工作原理完全解析,带你从源码的角度彻底理解

在Android所有常用的原生控件当中,用法最复杂的应该就是ListView了,它专门用于处理那种内容元素很多,手机屏幕无法展示出所有内容的情况。ListView可以使用列表的形式来展示内容,超出屏幕部分的内容只需要通过手指滑动就可以移动到屏幕内了。另外ListView还有一个非常神奇的功能,我相信大家应该都体验过,即使在ListView中加载非常非常多的数据,比如达到成百上千条甚至更多,

2015-11-04 16:45:43 593

转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(下)

记得在前面的文章中,我带大家一起从源码的角度分析了Android中View的事件分发机制,相信阅读过的朋友对View的事件分发已经有比较深刻的理解了。还未阅读过的朋友,请先参考 Android事件分发机制完全解析,带你从源码的角度彻底理解(上) 。那么今天我们将继续上次未完成的话题,从源码的角度分析ViewGruop的事件分发。首先我们来探讨一下,什么是ViewGrou

2015-11-04 10:02:56 268

转载 Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客开始,就零零散散在好多地方使用到了Android事件分发的知识。也有好多朋友问过我各种问题,比如:onTouch和onTouchEvent有什么区别,又该如何使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?等等……对于这些

2015-11-03 16:35:36 332

原创 Java泛型

1. 概述在引入范型之前,Java类型分为原始类型、复杂类型,其中复杂类型分为数组和类。引入范型后,一个复杂类型就可以在细分成更多的类型。例如原先的类型List,现在在细分成List, List等更多的类型。注意,现在List, List是两种不同的类型,他们之间没有继承关系,即使String继承了Object。下面的代码是非法的    List ls = new Arra

2015-11-03 16:04:50 318

原创 java基础之 “==”和“ equals”以及instanceof的区别

(1)对于字符串变量来说,使用“==”和“equals()”方法比较字符串时,其比较方法不同。“==”比较两个变量本身的值,即两个对象在内存中的首地址。“equals()”比较字符串中所包含的内容是否相同。比如:String s1,s2,s3 = "abc", s4 ="abc" ;s1 = new String("abc");s2 = new St

2015-11-02 17:54:15 415

原创 android Intent机制详解

什么是IntentIntent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件。通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTIO

2015-11-02 16:15:07 301

转载 android窗口管理剖析

Android窗口管理 一、 概述在Android系统中,从设计的角度来看,窗口管理系统是基于C/S模式的。整个窗口系统分为服务端和客户端两大部分,客户端负责请求创建窗口和使用窗口,服务端完成窗口的维护,窗口显示等。 在Client端,并不是直接和WindowManagerService交互,而是直接和本地对象WindowManager交

2015-11-02 11:46:59 362

原创 Activity的四种启动加载模式(launchMode)

在多Activity开发中,有可能是自己应用之间的Activity跳转,或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例,而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式,而不是使用默认的加载模式。Activity一共有以下四种launchMode:1.standard2.singleTop

2015-11-02 11:34:52 1129

原创 android动画详解

巧用Android的自定义动画,使你更加的有动感,是大多数Android开发人员的目标,那怎么做到这点。请听下文分解:  3.0以前,android支持两种动画模式,tween animation(幅间动画),frame animation(帧动画),在android3.0中又引入了一个新的动画系统:property animation(值动画),这三种动画模式在SDK中被称为property

2015-09-08 12:02:10 236

原创 SpannableString属性详解

1、BackgroundColorSpan 背景色     2、ClickableSpan 文本可点击,有点击事件    3、ForegroundColorSpan 文本颜色(前景色)    4、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)    5、MetricAffectingSpan 父类

2015-06-05 12:18:34 258

原创 Activity 的生命周期 状态

Activity 的生命周期和 J2ME 的 MIDlet 一样,在 android 中,Activity 的生命周期交给系统统一管理。与 MIDlet 不同的是安装在 android 中的所有的 Activity 都是平等的。Activity 的状态及状态间的转换在 android 中,Activity 拥有四种基本状态:Active/Runing一个新 Activity 启

2015-05-15 10:43:28 382

转载 Android异步消息处理机制 handler

我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃。相信大家在日常的工作当中都会经常遇到这个问题,解决的方案应该也是早已烂熟于心,即创建一个Message对象,然后借助Handler发送出去,之后在Handler的handleMessage()方法中获得刚才发送的Message对象,然后在这里进行UI操作就不会再出现崩溃了。这种处理方式被称为

2015-05-14 10:52:02 304

转载 优化ListView

1. 使用后台线程,让ListView流畅滚动有经验的开发者经常建议:不要在主线程进行耗时的操作。但对于初学者来说,到底什么是主线程呢?这个问题我琢磨了很久。主线程其实就是UI线程,这个线程负责处理跟UI相关的操作。界面的绘制、界面的加载、控件的调整等操作都是由主线程来执行的。UI线程之所以被称作主线程,是因为在绝大多数情况下,我们写的代码都会在跑在UI线程里,比如界面的各个生命周期的回调

2015-05-14 10:47:09 269

转载 Android LayoutInflater详解

在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。具体作用:1、对于一个没有被载入或者想要动态载入的界面,都需要使用Layou

2015-05-14 10:41:53 262

WheelView滚动选择器

一个仿IOS的时间选择器的demo,一个可能滚动的选择器

2015-12-10

深入理解android卷1

深入理解android对于初学android的开发都来说是一本很不错的书

2015-11-05

曲线轨迹,加入购物车动画

类似于各个购物网站选择物品后曲线加入购物车动画

2015-11-05

空空如也

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

TA关注的人

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