自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 ConstraintLayout约束布局的属性盘点

学习文章:1.ConstraintLayout约束布局的官方文档2.郭霖-Android新特性介绍,ConstraintLayout完全解析3. 鸿洋-ConstraintLayout 完全解析 快来优化你的布局吧4.ConstraintLayout —— 约束布局 知识点整理5.ConstraintLayout使用详解 相对位置属性属性类似RelativeLayout la...

2018-11-28 17:01:57 824

原创 自定义GridView,添加分割线

工作过程中,gridview网格布局会经常用到,大部分情况下不需要进行重新自定义。比如添加分割线,下划线,android:horizontalSpacing="3dp" android:verticalSpacing="3dp"这两个属性就可以帮我们实现。但是问题来了,这两个属性只会充满gridview宽高,无法实现如图这种效果。没办法,就只能自定义GridView了。只需

2018-11-08 18:24:12 512

原创 如何写一个单例模式?

单例模式特点:1.只能实例化一个对象2.只能通过一个静态方法供其访问实现3.可以读取系统中共享的一些配置信息,数据资源,避免数据的不同步和性能消耗适用场合:1.需要频繁的进行创建和销毁的对象2.创建对象时耗时过多或耗费资源过多,但又经常用到的对象3.工具类对象4.频繁访问数据库或文件的对象如何实现单例模式?主要得考虑4点:1.构造函数私有2.含有一个该类的静态私有对象3....

2020-12-23 14:35:16 932

原创 android开发中常见的implementation,api,compileOnly等是什么

AS 2.X和3.X版本依赖方式比较2.X 3.X 在3.X以上版本中,compile依赖关系已经被废弃,被implementation和api替代;provided被compile only替代;apk被runtime only替代;api与2.X版本的compile完全一致。api与implementationimplementation:仅作用...

2020-12-23 14:33:46 1992 1

原创 Android如何避免equals()引发的空指针错误?

在日常开发工作过程中,比较两个参数是否相等的情况非常多。这就需要用到xxx.equals()方法。equals()方法是Object类里的方法,它不支持null.equals(xxx)的调用方式,如果调用者为null则会引发空指针错误。在调用接口的时候,难免要对后台返回的参数进行一些参数的比较,如果后台返回的参数是null,通过此方式调用就会出现错误,这种bug的出现是不被允许的。这里有两种...

2019-08-05 11:09:19 807 2

原创 Android ProGuard代码混淆

什么是proguard?Java代码是非常容易反编码的,况且Android开发的应用程序是用Java代码写的,为了很好的保护Java源代码,我们需要对编译好后的class文件进行混淆。ProGuard是一个混淆代码的开源项目,它的主要作用是混淆代码,ProGuard还包括以下4个功能。1.压缩(Shrink):检测并移除代码中无用的类、字段、方法和特性(Attribute)。2.优化(Op...

2019-03-28 14:49:53 228

原创 Android synchronized的几种场景

参考博客:使用synchronized的几种场景1.修饰一个方法synchronized 修饰一个方法很简单,就是在方法的前面加synchronized,例如:public synchronized void method(){ // todo}在定义接口方法时不能使用synchronized关键字。构造方法不能使用synchronized关键字,但可以使用synchroni...

2018-12-18 11:02:54 1202

原创 为什么子线程中可以Toast和更新Progressbar进度?

问1:子线程中能更新UI吗?Android多线程机制,我们知道,子线程中不能有更新UI界面的操作,UI线程不能进行一些耗时操作。所以显然是不能的。接着问2:子线程中能直接Toast和更新Progressbar进度吗?Toast和更新Progressbar不也是UI更新吗,大部分人会认为那肯定是不能呀!不然不就和问题1相违背了吗?然而事实是可以Toast和更新Progressbar的。说明:...

2018-12-17 11:23:53 652

原创 Android面试题总结(附面试题博客文章地址)

相关博客文章地址:android 多线程 — 线程的面试题和答案

2018-12-15 13:58:43 158

原创 Android多线程

为什么需要多线程?需要多线程的本质就是要进行异步处理,莫要让用户感觉到“很卡”。更不能出现ANR(Application Not Response)这种现象。Android的多线程理解?Android是单线程模型,Android的UI线程是非线程安全的,应用更新UI,是调用invalidate()方法来实现页面的重绘,而invalidate()是非线程安全的。(可参考博客为什么说inval...

2018-12-11 17:29:09 171

原创 Android Studio 遇到的一些问题总结

List item

2018-12-11 09:48:49 192 1

原创 Gson: GsonBuilder().serializeNulls()配置序列化Null值的意义

实例化Gson的时候可以添加一些配置:如GsonBuilder().serializeNulls()含义Gson在默认情况下序列化的时候是不导出值是null的属性的public class Student{ public String name;//"小明" public int age;"12" public String phone;"null"}Gson gs...

2018-12-05 14:50:16 3592

原创 Android Viewpager嵌套Viewpager滑动冲突。

场景:tablayout绑定viewpager,viewpager嵌套fragement,其中一个fragment中嵌套了一个子viewpager,导致不能正常滑动。解决方法:重写viewpager的canScroll()方法。 @Override protected boolean canScroll(View v, boolean checkV, int dx, int x, i...

2018-11-22 15:36:06 897

原创 Java 泛型的学习与应用。

所谓的泛型,就是变量类型的参数化。泛型是java1.5中引入的一个重要特征,通过引入泛型,可以使编译时类型安全,运行时更少抛出ClassCastException的可能。提到参数化,就会想到定义方法是由形参,然后调用该方法传入实参。泛型的变量类型的参数化就是将原来传入的具体的类型参数化,这就像方法中的变量参数。使用泛型的时候如果不提供参数类型,即泛型类没有参数化,系统会警告,此时类型为Object...

2018-11-22 15:19:53 303

原创 Android开发中遇到的一些问题!

编译报错:The android.dexOptions.incremental property is deprecated and it has no effect on the build process.android.dexOptions.incremental属性已被弃用,它对构建过程没有影响。处理:app的build.gradle修改dexOptions {// ...

2018-11-20 15:58:47 196

原创 ArcGIS for Android 100.3的学习与应用(三) 实现地图添加自定义指北针

图为高德地图实现指北针的效果,那么ArcGIS如何实现呢?实现方式:添加地图的旋转监听: map.addMapRotationChangedListener(new MapRotationChangedListener() { @Override public void mapRotationChanged(MapRotationChange...

2018-11-16 11:19:29 1791 7

原创 ArcGIS for Android 100.3的学习与应用(二) 如何移除指定的点和线?

在地图上添加点和线的时候,我们有时候会遇到要移除或者切换指定的点和线的操作。那么如何移除指定的点和线呢?ArcGIS的api里点和线都是由GraphicsOverlay类来进行创建添加的。通过Graphic对象将点或者线的图形对象(SimpleMarkerSymbol,SimpleLineSymbol)封装起来,然后放入GraphicsOverlay.getGraphics()的集合之中去。最后...

2018-11-15 15:06:04 1126 3

原创 ArcGIS for Android 100.3的学习与应用(一) 如何绘制点和线?

平时工作中,我们接触到的地图类开发平台有很多,最常用的有高德,百度,腾讯地图。而且它们都有自己的开发者平台和文档供我们使用。基本能满足我们的业务需求。由于公司里的项目会涉及一些地图数据统计和展示方面的需求,同时也会发布一些地图服务,所以选择了使用在地图方面比较牛逼的ArcGIS。把平时遇到的一些问题总结一下,希望可以帮助到大家。ArcGIS开发者平台Android arcgis如何绘制点和...

2018-11-14 16:08:10 1867

原创 Android Studio打包的时候出现"java.lang.OutOfMemoryError: GC overhead limit exceeded"

今天项目升级,在用签名打包的时候出现了"java.lang.OutOfMemoryError: GC overhead limit exceeded"这个错误。原因:JVM抛出 java.lang.OutOfMemoryError: GC overhead limit exceeded 错误就是发出了这样的信号: 执行垃圾收集的时间比例太大, 有效的运算量太小. 默认情况下, 如果GC花费的时...

2018-11-14 14:05:10 3455 2

原创 Android 一个不错的垂直TabLayout和ViewPager

一.垂直竖向的Android TabLayout VerticalTabLayout支持自定义Indicator大小支持自定义Indicator位置支持Indicator设置圆角支持Tab设置Badge支持Adapter的方式创建Tab多种Tab高度设置模式Tab支持android:state_selected很方便的和ViewPager结合使用很方便的和Fragment结合...

2018-11-13 14:27:18 4402

原创 Android 如何使Tablayout内容和下划线长度相同?

我们在使用Tablayout选项卡控件的时候经常要根据项目需求做一些改动,比如如何使Tablayout内容和下划线长度相同,类似头条选项卡那种。通常我们的策略是通过反射的机制去改变Tabview的长度。下面直接贴代码:public void setIndicator(){ //拿到tabLayout的mTabStrip属性 Field mTabStripFi...

2018-11-09 16:33:38 978

原创 Android 自定义View,绘制一个带比例的环形进度条

最近项目有一个需求,要在首页显示三个环形饼状图,要求可以显示比例大小,中间显示文本部分,并且需要可以自定义颜色。设计图如下:思路:绘制一个带百分比的圆环,一共分了四个部分:1.背景圆(就是底图圆)2.默认圆环3.绘制的圆环(就是比例圆环)4.中心文字下面我们开始进行绘制,先准备四支画笔, 设置画笔相应的属性; private Paint roundColorPaint;//外圆画...

2018-11-09 14:31:02 540

原创 如何解析key值不固定的json数据

没想到你是这样的Json数据{“小明”: “xxx”,“小张”: “xxx”,“小王”: “xxx”,}

2018-11-09 11:34:00 5075 2

原创 Android开发中,Fragment嵌套Fragments遇到的问题

Fragment,简称碎片,是Android 3.0(API11)提出的,为了兼容低版本,support-v4库中也开发了一套Fragment API,最低兼容Android 1.6。Fragment是依赖于Activity的,不能独立存在的。一个Activity里可以有多个Fragment。一个Fragment可以被多个Activity重用。Fragment有自己的生命周期,并能接收...

2018-11-09 10:38:05 1014

android 轮播图实现

android轮播图实现,通过自定义viewpager ,pageradpter以及通过自定义handler发送和接收消息来实现自动轮播功能。

2018-06-20

空空如也

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

TA关注的人

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