自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 安卓无障碍服务实战

前言安卓中的无障碍服务是个很强大的功能。这个服务本来是为了帮助有行动障碍的人群更加便利的使用手机而设计的。但在开发者们的脑洞大开下,人们经常使用无障碍服务来进行一些”骚操作“。说到无障碍服务,之前我是不知道安卓无障碍服务能干这么多事的,因为我从开始学安卓开始,接触到的大多数教材里,别人写的博客里,大多数的内容都是四大组件及网络通信这方面的内容。包括工作后,掌握的安卓开发技术更多以后,在相当长的一段时间内我都是不知道安卓还有无障碍服务这么一个东西的,直到后来同事告诉我这么个东西,我才恍然大悟,原来什么自动

2021-05-03 17:46:47 4839

原创 安卓自定义view练习之风扇进度条

效果图如下:加载中。。。FansLoadingView主体代码:public class FansLoadingView extends View { private Paint progressPaint; private Paint progressRectPaint; private Paint progressStrokePaint; private Paint progressShaderPaint; private RectF progress

2021-04-12 22:07:39 250

原创 安卓自定义dialog一篇文章搞定

在项目中我们经常会使用到自定义dialog,但是我们往往自定义了一个dialog,在show的时候,显示出来的效果却很奇葩,其显示出来的视图宽高,大小,里面控件大小等等属性都不对,甚至看起来效果惨不忍睹。 最近我也是被这问题搞的头大,在结合了网上一些文章案例,自己的实际操作后,终于总结出了怎么写好自定义dialog的方法,下面我们直接进入正题吧!实现自定义dialog方式一(1)先上布局:<LinearLayout xmlns:android="http://schemas.android.co

2021-04-10 22:58:25 320

原创 安卓Okhttp3源码的简单分析

前言:现在的Android项目基本上都是以OkHttp来进行网络通信的(retrofit也是基于okhttp的)下面记录下okhttp3中的一些实现方式和原理。工作流程以这张图出发,说一下几个注意的点:(1) 建议让 OkHttpClient 保持单例,用同一个 OkHttpClient 实例来执行你的所有请求,因为每一个 OkHttpClient 实例都拥有自己的连接池和线程池,因此为每一个请求都创建一个client是不必要的且影响软件效率。下面我们来看看 new OkHttpClient()

2021-04-08 09:34:33 180

原创 effactivejava第四章-泛型&&第10章-异常

第四章,泛型使用泛型是日常开发中不可获取的一部分,本章的内容教如何最大限度地享有这些优势,又能使整个过程尽可能的简单化。26、请不要使用原生态类型概念:声明中具有多个类型参数的类或者接口,就是泛型类或接口。例:List 读作 “E的列表”。 E就是形参,而如果我们传入的E是String,那么string就是它的实参。使用泛型可以在编译时就发现错误,而不是等到运行时。所以有泛型可以使用的类,就应该一开始就使用泛型。比如下面例子:这段程序在运行时,在strings.get(0)的时候会将Intege

2021-04-02 23:07:56 172

原创 effectivejava笔记 第8章方法,第9章通用编程

第8章本章主要讨论方法设计的几个方面:如何处理参数和返回值,如何设计方法签名,如何为方法编写文档。第49条、检查参数的有效性对于方法中传入的参数,应该对其有效性进行检查,如果成功则继续执行方法剩余部分,如果失败则应该抛出异常或者返回一个标志性结果。不过有效性检查并不是越多越好,因为在设计方法时,应该使他们尽可能通用,并符合实际的需求,假如方法对于它能接受的任何参数值都能很好的工作,那么参数的限制应该越少越好。第50条、必要时进行保护性拷贝如果没有对象的帮助,另一个类不可能修改对象的内部状态,但对象

2021-02-27 10:55:11 222

原创 安卓报错Invalid Region.Op.REPLACE - only INTERSECT and DIFFERENCE are allowed

在api 28及以上,将不再支持使用Region.Op.REPLACE ,仅支持使用INTERSECT and DIFFERENCE这两个属性。 那么对于以前的clippath(rect,Region.Op.REPLACE)来说,就要修改成下面这样,以保持原来相同的功能。(下面是伪代码)//原写法canvas.clippath(rect,Region.Op.REPLACE);//改为现在这样if(api >= 28){ canvas.save(); canvas.clipp

2021-02-26 17:50:57 1050 3

原创 深入理解java虚拟机——java内存区域与内存溢出的知识点

概述:对于java来说,在虚拟机的自动管理内存帮助下,不需要为new的操作写对应的delete/free代码。一般不容易出现内存泄露和 溢出的问题,但是一旦出现这种问题,不了解虚拟机的话,将无从下手解决。注:本章是简单介绍了java运行时数据区2.1 运行时数据区java虚拟机所管理的内存区域包括以下几个运行时数据区,如下图所示:要注意的是,这些区域的创建销毁时间,各自的用途都各不相同,下面将对它们分别进行介绍。(1)程序计数器这是一块较小的内存空间,它可以看做是 当前线程 所执行的字节码的

2021-02-19 22:07:11 98

原创 effectivejava第三章类和接口总结

15、使类和成员的可访问性最小化设计良好的组件会隐藏所有的实现细节,把API与实现清晰的分割开来,这个概念也叫做封装。封装可以解耦,使得维护,测试更加轻松。本节内容讲的就是 java 的访问机制(private,default,protected,public)。其中有几点建议值得学习:(1)在同一个包中时,只有当另一个类确实需要访问某一个成员时,才应该删除private修饰符,使它变为包级私有。若这样的操作经常被执行,则可能该考虑重写设计此类了。严格的控制私有成员可以防止“api泄露”(2)对于重写

2021-02-15 18:23:37 137

原创 effectjava中object类中的几个方法小结

本章说的就是Object类,因为它是所有类的超类。而所谓的“object类中对所有对象都通用的方法”,就是指它里面的非final方法(equals,hashcode,tostring,clone)。10、覆盖equals方法时需要遵守的通用约定非必要请不要覆盖equals方法,因为equals本来的职责就是判断类实例是否相等,它不应该被赋予额外太多职责。那什么时候该覆盖equals方法呢? 一个例子就是值类情形,值类就比如Integer,String这些类。它们有自己特有的“逻辑相等”条件,而且超类没有

2021-02-10 18:45:23 89

原创 java创建和销毁对象总结

在读effective java的过程中,让我了解到即使是最常见的创建和销毁对象,也是有讲究,有操作的。故对此做一个小结,将作者想告诉我们的主要思想记录一下。第一章,创建和销毁对象总结1、以静态工厂方法替代构造器这一节作者主要想表达的意思是:静态工厂方法可以重新定义名称,比起单纯的使用构造方法而言,更能清楚的描述当前的使用的情景。静态工厂方法可以控制返回的实例,是重复使用已有实例还是重新new一个,还是返回该类型的子类对象,甚至是使用反射返回某一个类的对象,这些都是一个静态工厂方法就可以完成的。总结

2021-02-09 20:03:43 604

原创 安卓使用window manager往屏幕上添加一个view

如何往屏幕中任意位置添加一个view。直接上代码一、获取window managerWindowManager windowManager = getWindowManager();二、实例化你要添加的控件ImageView imageView = new ImageView(context);三、设置layoutparams,注意这里要用到WindowManager.LayoutParamsWindowManager.LayoutParams layoutParams = new Win

2021-02-09 09:51:17 2041

原创 安卓studio中模拟器运行system app的解决方法

安卓studio自带的模拟器运行system app的方法前言: 本文教大家怎么使用安卓studio中自带的模拟器去运行一个system app。因为有时候自己写的应用需要作为system app才能实现某些功能,故需设置为system app, 但经常会出现明明打了系统签名却依然装不上的怪问题, 那么这篇文章能帮你解决问题。一、安卓模拟器修改想要让我们打了系统签名后的app能正常运行到安卓studio的模拟器中,首先要确保你的模拟器不是带google apis的, 你要打开AVDmanager。

2021-01-31 17:19:15 2314 4

原创 安卓项目中没有recyclerview组件

都0202年了,如何快速导入recycleview包1、小白解决方法2、比较好的方法END1、小白解决方法在日常开发过程中,总是会出现当我们想使用recycleview的时候,发现竟然没有这个控件。按照我以往的做法,我总是在网上别人的回答中找解决方案。他们回答的大多数添加xxx就好了,所以就找了个像下面这样的依赖,直接粘贴到build.gradle下的dependencies中,直接用就完...

2020-01-17 10:55:44 1349 2

空空如也

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

TA关注的人

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