自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Android JetPack——DataBinding

DataBinding的作用是直接让实体类的和布局中控件绑定,不需要代码中设置,只需给布局设置对象即可。 DataBinding支持 android { compileSdkVersion 28 defaultConfig { applicationId &qu...

2019-07-12 13:57:24 90 0

原创 Android JetPack——LiveData

项目地址:项目地址包含之前的内容 public abstract class LiveData<T> {} 虽然是一个抽象类,但是它并没有抽象方法。 根据文档介绍:LiveData是一个给定生命周期内的数据持有类。就需要一个观察者和生命周期拥有者进行关联,这样当数据变化的时候就能通知...

2019-07-12 11:57:19 38 0

原创 Android JetPack——Lifecycle

public abstract class Lifecycle {} 根据文档的注释,这个类可以帮助我们创建一个拥有Android生命周期的对象。比如Fragment和Activity。 需要做到三点: 生命周期拥有者,如Fragment、Activity、dialog、Service等,或者...

2019-07-12 10:53:54 119 0

原创 Android 自定义View——自定义一个文本选择框

这种效果也算是比较常用的选择方式了。 View的绘制流程 自定义View代码示例 View的绘制流程 //DecorView将会调用 07-10 11:33:18.657 23998-23998/com.example.study E/CustomFrameLayout: requestLay...

2019-07-10 12:25:53 181 0

原创 android View——事件分发

介绍 示例 源码浅析 对于Android中的事件,最常见到的就是点击事件。那么点击在屏幕上,最终怎么响应在设置的控件上的呢? 三个重要的方法 了解这些需要先知道三个方法 dispatchTouchEvent 此方法View和ViewGroup中都有。 public boolean dispa...

2019-07-09 10:31:28 72 0

原创 Android BitmapRegionDecoder——大图、长图展示

-. 类介绍 -. 示例 项目地址:项目地址包含之前的内容 类介绍 作用 public final class BitmapRegionDecoder { private BitmapRegionDecoder(long decoder) { ... } } Bit...

2019-07-04 16:54:46 490 0

原创 Android Bitmap——基本使用及压缩、颜色质量、bitmap内存空间复用

实例化对象 Bitmap对象大小和像素大小 BitmapFactory.Options 如何实例化对象 Bitmap文档 Bitmap提供了一系列的createXX方法,可以通过:Bitmap、DisplayMetrics、Picture、RGB的颜色数组等得到一个Bitmap对象。 Bitm...

2019-07-01 16:07:13 247 0

原创 Android IntentService

类介绍 使用示例 源码浅析 总结 类介绍 public abstract class IntentService extends Service { ... protected abstract void onHandleIntent(@Nullable Intent intent); ....

2019-06-28 17:30:49 40 0

原创 Android HeadlerThread

HandlerThread 类功能介绍 示例 源码浅析 总结 HandlerThread 类功能介绍 /** * Handy class for starting a new thread that has a looper. The looper can then be * used t...

2019-06-28 15:24:34 153 0

原创 Android AsyncTask

AsyncTask 支持正确、方便使用UI线程。不必去操作线程或者Handler,就可以把线程任务的结果返回到UI线程中来。 抽象类AsyncTask public abstract class AsyncTask<Params, Progress, Result> { ... @...

2019-06-27 17:39:01 40 0

原创 Android ContentProvider

ContentProvider,Android四大组件之一。可以实现进程间数据共享。 有3个辅助类 ContentUris类,用来在Uri后追加id、获取id。 UriMatcher类 ,用来注册ContentProvider的Uri,根据提供的Uri匹配ContentProvider中对应的...

2019-06-25 14:50:47 24 0

原创 Android Service--AIDL

上个文章介绍了IBinder和Messenger的使用。而且也说了,Messenger底层也是使用了AIDL。下面笔记一下AIDL。 AIDL是一个缩写,全称是Android Interface Definition Language,也就是Android接口定义语言。相信这个解释,可以在很多文章...

2019-06-24 09:52:27 55 0

原创 Android Service--通信方式(IBinder回调、Messenger)

Activity与Service的通信,分两大类,同一个进程中、不同的进程中。 同一个进程中 可以通过直接实现IBinder接口,或者继承Binder类。Binder类是系统提供的一个IBinder接口的实现类。 Service中: public class MyBind extends Bi...

2019-06-21 09:34:24 417 0

原创 Android Service--启动方式

首先作为四大组件,使用的时候别忘了在清单文件中注册。 生命周期 startService attachBaseContext–onCreate–onStartCommand stopService onDestroy bindService attachBaseContext–onCreate...

2019-06-20 14:08:52 176 0

原创 Acitivity启动模式——launchMode

standard 标准模式也是默认的启动模式,每次start,都会走onCreate方法重建。 singleTop 栈顶模式,start的时候,如果activity不在栈顶,会调用onCreate方法重建,如果在栈顶存在就会走onNewIntent方法,不会重建。 singleTask 单任务模式...

2019-06-18 16:47:46 25 0

翻译 Android技能树—— 性能优化(一)

常见的性能问题 内存泄露 Android 内存分配的方式 OOM(内存溢出) 大Bitmap、列表Bitmap等。 耗电问题 定位、动画。 内存抖动 频繁GC 造成性能问题常见的原因 在UI线程中进行了耗时操作,导致UI线程卡顿。 UI布局过于复杂,无法在16ms内完成渲染。 View过渡绘...

2019-06-13 14:31:16 51 0

原创 7.0手机打开相机或相册报错解决方案,记录。

在android 7.0以上的手机上打开相机、相册会报如下错误: android.os.FileUriExposedException: ** exposed beyond app through Intent.getData() 原因 在Android7.0系统上, 如果一项包含文件 fi...

2018-10-26 16:24:04 266 0

原创 Android TextView、EditText显示输入法自带表情,记录一下

参考文章写在首位 Android emoji显示 嘿嘿,其实代码都没有变。 在Android系统中使用系统自带的emoji表情 这篇文章里介绍,emoji表情实际上是一组Unicode编码与一组表情描述之间的一一对应。,至于对应什么图片,就看不同系统怎么设定了。 TextView和EditTex...

2018-10-09 17:19:46 942 3

原创 Android CoordinatorLayout自定义Behavior笔记

参考放在首位 Behavior参考博客 Behavior参考博客 Behavior抽象类 public abstract static class Behavior&amp;amp;amp;lt;V extends View&amp;amp;amp;gt; { ...

2018-10-09 09:09:18 586 0

原创 C语言 基本数据类型

在我们玩游戏的时候,游戏中的角色是有类型的,有敏捷型、力量型、法术型等等。同样C语言中的数据也是有类型的,C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。如图所示: 这里我们先给大家讲解基本数据类型中最简单也是最常用的整型、实型与字符型。 整型数据是指不带小...

2017-07-20 15:05:31 275 0

原创 C语言基础 标识符

有名有姓的C编程时给变量或者函数起的名字就是标识符,就好比我们慕课网的每一位童鞋都有姓名,姓名就是这位童鞋的标识符。C语言的标识符是不可以随便起名字的,必须遵守一定的规则。C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线。在使...

2017-07-14 14:06:42 286 0

原创 C 语言基础 注释

注释是为了使别人能看懂你写的程序,也为了使你在若干年后还能看得懂你曾经写的程序而设定的。注释是写给程序员看的,不是写给电脑看的。所以注释的内容,C语言编译器在编译时会被自动忽略。C语言注释方法有两种: 多行注释: /* 注释内容 */ 单行注释: //注释一行 #include &l...

2017-07-14 13:57:33 284 0

原创 java设计模式 装饰模式 魔域战力系统

装饰者模式:若要扩展功能,装饰者提供了比集成更有弹性的替代方案,动态地将责任附加到对象上。 先简单描述下装饰者模式发挥作用的地方,当我们设计好了一个类,我们需要给这个类添加一些辅助的功能,并且不希望改变这个类的代码,这时候就是装饰者模式大展雄威的时候了。这里还体现了一个原则:类应该对扩展开放,对...

2017-06-23 11:59:30 256 0

原创 java 设计模式 观察者模式 新闻消息推送

观察者模式,字面意思有个观察者,那么就应该有一个被观察者。两个定义: 观察者:Observer (比如新闻客户端,你自己的微信号) 被观察者:Observable(新闻推送端,你关注的微信公众号) 1.观察者可以同时订阅多个被观察者。 2.被观察者可以同时被多个观察者订阅。 3.被观察者...

2017-06-22 15:20:07 1793 0

原创 java 设计模式 策略模式 以英雄联盟为背景

继续java设计模式学习之旅, 策略模式(Strategy Pattern):定义了算法族,分别封装起来,让它们之间可相互替换,此模式让算法的变化独立于使用算法的客户。 可能看完之后还是很迷糊,但是有一个印象,方便阅读下面代码时候的思路理解。(本人是一名android讲师,这个也是很多学员喜欢...

2017-06-21 17:01:27 484 0

原创 java设计模式 单例模式

这个模式大家应该都用过,目的就是保证类的对象的唯一性,那么在实现的过程中呢,有多种方法。 饿汉式,类加载就创建 这个也是写起来最方便的 package bean;public class SingleBean { //实例化私有对象 private static SingleBea...

2017-06-21 15:26:01 155 0

原创 java 类型通配符 ?

如果对上篇文章的泛型有所了解后,还需要了解下类型通配符,在java中类型通配符是? 可以将一个类型通配符?,作为类型实参,传递给一个泛型类或者泛型接口。如:Listpublic class Test { public static void main(String[] args) { ...

2017-06-14 18:04:50 479 0

原创 java 深入理解泛型

泛型相信很多人都遇到过,比如使用集合的时候类似List,封装适配器的时候。泛型在处理数据的时候可以帮助我们,只处理指定类型的数据,比如集合无论我们存什么样的数据,取出的时候都会被认为是Object的对象,一般都需要我们去强转为想要的数据类型,这个时候可能会出现类型转换错误。比如:List list...

2017-06-14 15:46:11 362 0

原创 Java Enum 枚举详解

在某些情况下,一个类的对象是有限而固定的。比如季节类,它只有4个属性。像这种实例有限且固定的类,被称为枚举类。没错,它仍然是一个类,具有类所有的特性。 下面就开始创建一个枚举类吧:** 无法创建枚举文件的问题 **new>Enum 哎呀,结果发现创建的时候无法创建(如果你用的是eclip...

2017-06-13 17:28:59 388 0

翻译 Kotlin入门语法

Kotlin的基础语法,开始学习Kotlin,可以类比Java语言,但不能被Java的思维模式固定。 1. 导包 和java一样,导包都是在文件的顶部 package my.demo import java.util.* 2.定义功能函数 带Int类型返回值的函数 fun sum...

2017-06-13 13:42:39 228 0

原创 Android壁纸之静态壁纸

上篇文章写了有关动态设置壁纸的介绍,也就是WallPagerService的使用 今天来介绍一下超级简单的设置静态设置壁纸的方法 ,代码如下 WallpaperManager wallpaperManager=WallpaperManager.getInstance(MainActivity.th...

2017-06-06 14:20:44 1125 0

原创 Android 壁纸应用之动态壁纸

效果图,图中桌面背景为一段视频 对动态壁纸进行一些设置 在res下创建一个xml文件夹,在创建一个wallpager标签文件<?xml version="1.0" encoding="utf-8"?> <wallpaper xmln...

2017-06-05 17:47:33 781 0

原创 android 开发 EventBus3.0不同之处详细介绍

1、下载EventBus的类库 源码:https://github.com/greenrobot/EventBus 可以直接添加依赖:compile 'org.greenrobot:eventbus:3.0.0'如果你看了之前的文章,应该已经会简单使用EventBus了,上...

2017-05-27 12:01:54 439 0

原创 Android 开发EventBus简单使用

从最简单的开始EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。1、下载EventBus的类库 ...

2017-05-26 23:52:12 352 0

原创 Android Studio 配置Kotlin

最近在群里看到很多人都在聊Kotlin这门新语言,而且也成为了android开发语言之一,熟话说人无远虑必有近忧呀,如果会Kotlin的开发者越来越多,公司在招聘的时候就该提出这个要求了。 想去使用Kotlin开发android项目,就要集成对Kotlin语言支持的配置,Android Stud...

2017-05-26 15:06:11 2580 1

原创 android Recyclerview上拉加载更多

在项目中使用列表的下拉刷新和上拉加载更多是很常见的功能,下拉刷新我们可以用android自带的SwipeRefreshLayout这个很好解决。但是上拉加载更多就要去找一些框架了,刚开始的时候我找到一个Mugen的github开源框架,但是有个问题,当页面能够一次加载全部item的时候,上拉加载的...

2017-05-24 12:58:34 623 1

原创 android 调用系统相机、相册剪切功能

效果图片 /** 跳转到系统的拍照功能 */ protected void takePhoto() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityFo...

2017-05-23 17:55:18 451 0

原创 android studio 如何快速添加依赖

使用android studio 添加依赖是常有的事情,当然可能某些人还不知道如何去快速添加依赖,在gradle中已经给我们添加了代码仓库allprojects { repositories { jcenter() } }添加依赖后,就会自动去下载,步骤如下: ...

2017-05-16 10:11:46 2674 0

原创 Android 抽屉侧滑菜单 DrawerLayout+NavigationView+ToolBar

效果图 当然只是一个简单的demo接下来就是主界面布局了<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.and...

2017-05-15 18:09:36 398 0

原创 Android TabLayout的使用(ViewPager添加标题)

效果图 上方的指示器用到的就是TabLayout 下方是一个ViewPager ViewPager内的数据为fragment东西就这么多,先看下布局:先看下如何引用TabLayout 布局的选择控件界面选择Design>TabLayout,需要添加这个依赖,之后就是布局的内容<...

2017-05-05 17:30:56 2277 0

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