自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (2)
  • 收藏
  • 关注

原创 Gradle笔记_5-管理多模块构建

Gradle笔记_5-管理多模块构建5.1 解剖多模块构建通常,一个多模块项目有一个根目录,在其子文件夹中包含所有的模块。为了告知 Gradle 项目的结构以及哪个文件夹包含那些模块,需要在项目的根目录提供一个 settings.gradle 文件。每个模块都可以提供自己的 build.gradle 文件。下面是多模块项目结构:在项目的 settings.gradle 文件中声明了所有的模块,如下所示:include ':app', ':library'该代码确保了 app 和 libr

2021-02-19 11:20:33 1038

原创 Gradle笔记_4-创建构建Variant

Gradle笔记_4-创建构建Variant开发一个应用时,通常有几个不同版本。最常见的情况是,测试版本和生产版本,可能 baseUrl 不同,Logger 开关不同等。除此之外,你的应用可能还有一个免费版和付费版。这样的话,就需要处理四种不同的版本:免费测试版、付费测试版、免费生产版、付费生产版。不同版本的不同配置让项目变得是非复杂。在 Gradle 中有一些便捷和可扩展的概念用来定位这些常见问题。构建类型:每个由 Android Studio 创建的新项目都会生成 debug 和 rel

2021-02-09 15:56:22 1281

原创 Gradle笔记_3-依赖管理

Gradle笔记_3-依赖管理《Gradle for Android 中文版》笔记Gradle文档build.gradle 文件中添加一行依赖代码,Gradle 将会从远程仓库下载依赖库,项目中就可以使用其中的类了。3.1 依赖仓库repositories { jcenter()}Gradle 支持三种不同的依赖仓库:Maven、Ivy 或静态文件或文件夹。在构建(build)的执行阶段依赖从依赖仓库中被获取出来。Gradle 也有本地缓存,所以一个特定版本的依赖只会在你的机器上下载

2021-01-26 11:45:26 333

原创 Gradle笔记_2-基本自定义构建

Gradle笔记_2-基本自定义构建《Gradle for Android 中文版》笔记理解Gradle文件Android Studio创建项目,会默认生成三个 Gradle 文件。MyAppbuild.gradlesettings.gradleappbuild.gradlesettings 文件settings.gradle 文件内容如下示例:include ':app', ':commonlite'rootProject.name='MyApp'settings

2021-01-26 11:39:21 191

原创 Gradle 笔记_1 - Gradle 基础

Gradle 笔记 - Gradle 基础《Gradle for Android 中文版》笔记理解 Gradle 基础Gradle 构建的脚本–build.gradleGradle 有约定优于配置的原则,即为设置和属性提供默认值。基于 Groovy 的领域专用语言(DSL)。Groovy 是一种基于 Java 虚拟机的动态语言。想创建自己的任务和插件,那么对 Groovy 有更深层次的理解就显得尤为重要。项目和任务Gradle 中,最重要的两个概念是项目和任务。每一次构建都包括至少

2021-01-26 11:33:54 162 4

原创 EditText输入内容拦截和监听删除

public class ExtendEditText extends AppCompatEditText { public ExtendEditText(Context context) { super(context); } public ExtendEditText(Context context, AttributeSet attrs) { super(context, attrs); } public ExtendEdi

2020-11-12 09:53:30 2646 2

原创 android安全校验方案总结和参考

动态调试攻击风险解决application 设置debugable=“false”Android防止被动态调试的解决方法另参考:安卓应用加固之反动态调试技术总结Android 动态加载(防止逆向编译)技术App动态调试代码未混淆风险Android Studio 代码混淆(包教包会)Android Studio 代码混淆(你真的会混淆吗)Android studio开启代码混淆,让你的代码更安全android studio 代码混淆如何忽略第三方jar包界面劫持风险Android 防

2020-08-11 08:44:44 1156 1

原创 WebView与js交互总结

【参考:】Android webview与js 交换JSON对象数据使用Kotlin:让Android与JS交互的详解js中eval()的使用说明简介使用 WebView 加载网页,有时候需要进行js交互,相互传递数据和响应事件。android 调用 js 代码:WebView#loadUrl("javascript:func('" + arg + "')")WebView#evaluateJavascript(String script, @Nullable ValueCallbac

2020-08-06 21:06:32 1664 1

原创 Android设置文字中粗

UI设计图中给出了字重为中粗(Medium),而android中的文字只有默认和加粗(bold)。目前找到两种方式比较有效:给TextView 的 TextPaint 设置 伪粗体 setFakeBoldText(true)给TextView 的 TextPaint 设置文字边框宽度 setStrokeWidth(1.2f)kotlin代码如下:textView.paint.isFakeBoldText = truetextView.postInvalidate() // 或者 textVi

2020-07-30 16:08:14 2472

原创 RecyclerView滑动检测和滑动位置

RecyclerView的滑动检测RecyclerView的使用中,有时候我们需要监听列表滚动情况:上滑、下滑、顶部、底部。RecyclerView的滑动检测可以通过给RecyclerView添加滚动监听来实现:recyclerview.addOnScrollListener(RecyclerView.OnScrollListener) (或recyclerview.setOnScrollLi...

2020-02-25 09:32:34 11137 4

转载 常用的URL Scheme

系统名称scheme短信sms://app storeitms-apps://电话tel://备忘录mobilenotes://设置prefs:root=SETTINGE-MailMESSAGE://支付宝名称scheme支付宝 alipay://蚂蚁庄园 alipays://platformapi/sta...

2020-02-20 08:50:59 6311

转载 Mime 类型列表

转发自:https://www.w3school.com.cn/media/media_mimeref.asp按照文件扩展名排列的 Mime 类型列表扩展名类型/子类型application/octet-stream323text/h323acxapplication/internet-property-streamaiapplication/po...

2020-02-14 17:50:28 153

原创 流式布局初探

背景最近项目中用到了流式布局,最初就决定自己写一个,发现一时竟然没有思路。虽然自定义控件的博客看了不少,也写过简单的自定义控件,但是真正自己独立写出一个流式布局,还是有些考验的。查找了几篇博客,思路大同小异,理清思路,自己开干写了一下。中间改了几个问题,觉得可以正常使用后,这才有了这篇博客。我想说,会写流式布局了,表示你对ViewGroup的测量(onMeasure)和布局(onLayout)...

2020-01-20 15:10:31 300

原创 Retrofit + Kotlin请求接口 Any无法识别问题

最近遇到一个问题,Retrofit + Kotlin请求接口时,使用 Map<String, Any> 作为参数总是报错。代码如下: @GET("subj/simInfos")@Headers("baseUrlName:app", "netEnv:$NET_ENV")fun getSimInfos(@QueryMap params: Map<String, Any>)...

2020-01-13 17:40:19 1083 1

原创 TextView之自定义Span—MarkerViewSpan,TextView中添加View

关于 Span ,我们常用的有 ForegroundColorSpan(前景色,即字体颜色)、BackgroundColorSpan(背景色)、AbsoluteSizeSpan(绝对大小,设置字体大小)、ImageSpan(插入图片)等,更多可参考import android.graphics.Canvas;import android.graphics.Paint;import andro...

2019-09-12 12:39:48 2081 1

原创 ScrollView 嵌套 RecyclerView 冲突问题

开发中使用ScrollView 嵌套 RecyclerView 时遇到了滑动冲突和显示不全问题。自己尝试解决了一下。由于项目需求,需要 ScrollView 高度是 wrap_content,ScrollView 内是一个 LinearLayout ,LinearLayout 里添加了多个 RecyclerView 。SrcollView 有一个最大高度 maxHeight 。对于可能出现的 ...

2019-08-30 16:36:30 540

原创 ViewPager禁止滑动和修改滑动速度

1. 简介2. ViewPager 禁止滑动3. ViewPager 的scroller4. 参考

2019-08-23 12:46:14 6819

原创 利用ViewPage的PagerTransformer定制页面切换效果

1. 简述定制ViewPage的页面切换效果其实非常简单,只需用到ViewPager 的一个方法和一个接口 PagerTransformer。顾名思义,接口 PagerTransformer2. PagerTransformer3. 例子和效果4. 参考...

2019-07-12 17:40:22 2066

转载 Android 插值器(Interpolator)源码和曲线图

这篇关于插值器的博客,非常不错哦!转载过来来学习一下。android动画(一)Interpolator作者:李海珍一:简介interpolator可以翻译成插值器。Android中interpolator最底层的接口如下:package android.animation;/** * 时间插值器定义了一个动画的变化率。 * 这让动画让非线性的移动轨...

2019-06-24 09:36:49 1322

原创 GestureDetector简单应用实现长按和双击

要实现 Android 双击 功能,我们可通过记录两次点击时间,用两次点击时间间隔来判断实现双击功能。也可以通过手势 GestureDectector 的监听 实现双击功能。如下代码所示,创建 GestureDetector 同时注册 SimpleOnGestureListener 手势监听,实现长按(onLongPress)和双击(onDoubleTap)回调方法。为 view 设置触摸监听 ...

2019-06-21 17:15:07 3028

原创 ViewPager打造真正意义的无限轮播

文章目录1 简述2 实现思路3 具体实现3.1 实现无限滚动3.2 添加指示器3.3 自动轮播3.4 点击跳转4 总结5 参考1 简述ViewPage 不仅常用于页面导航切换,也常用来实现轮播图。百度一下,可以找到很多关于轮播图的实现文章。曾翻看过多篇相关文章,get 到一些要点,然而觉得自己实现一下,会更加深刻,如果加上自己独特的思路,也是对自己的一个锻炼,对代码一个积累。2 实现思路V...

2019-06-19 17:42:39 1136 1

原创 ViewPage 联动效果自带角标

文章目录1. 简介2. 要点2.1 角标如何布局2.2 如何与Indicator实现联动3. 实现3.1 布局3.2 导航栏3.3 导航栏与ViewPager联动3.4 tab切换效果4. 代码5. 参考1. 简介常常羡慕于别人分享的自定义ViewPager联动效果。近期项目中用到联动效果,找来一个不错的框架用到了项目中。发现有几个问题:一是难以适应自己项目的设计风格;二是适应自己项目的交互比...

2019-06-17 21:18:00 525

原创 px转dp获取屏幕尺寸的DisplayUtil

简单的工具类,用于px 和 dp 互转,获取屏幕尺寸(屏幕宽高)import android.content.Context;import android.os.Build;import android.util.DisplayMetrics;import android.view.Display;import android.view.WindowManager;/** * 屏...

2019-06-14 16:50:01 428

原创 xutils 的 LogUtil

偶然翻到 xutils 源码中的 LogUtil 工具类,觉得挺不错,果断 copy 过来备用。它巧妙运用了 Throwable ,可以定位到 类名 -> 方法名 -> 行号,对于调试来说,非常方便。代码如下:import android.text.TextUtils;import android.util.Log;public class LogUtil { //...

2019-06-14 15:14:21 255

原创 利用Appliaton的ActivityLifecycleCallbacks管理Activity

文章目录1 简介3 代码1 简介有时候我们是需要管理应用的 Activitiy,作一些统计、退出应用等操作。通常我们会写一个工具类,使用一个栈 Stack 管理所有的 Activity,需要在 BaseActivity 中重写 onCreate 方法,使用工具类将 Activity 添加到栈中,在结束页面时要将 Activity 从栈中移除。其实 Application 有一个内部类 Act...

2019-06-14 14:16:14 431

转载 下载 build-toos 失败问题

最近更新了新版的AndroidStudio,提示我下载build-toos:28.0.3, 我就点了一下,弹出下载弹框,下载竟然失败了,提示我查看 Event Log。看了 Event Log,告诉我试着设置了一下,发现没有用。于是查了一下百度,找到了一篇博客:https://blog.csdn.net/qq_42356693/article/details/86571561下面是摘录的重...

2019-05-27 11:52:55 211

原创 EditText软键盘的显示隐藏及焦点问题

简介EditText作为Android输入框,对于Android开发来说,是不能再熟悉的一个控件。但是,使用EditText 有很多的细节需要注意。比如它的一些常用属性、焦点问题、软键盘的显示隐藏等。在此,我做一些笔记,方便自己使用和记忆。EditText 基本知识示例代码:<EditText android:layout_width="match_parent" a...

2019-04-12 11:38:33 3484

原创 RecyclerView相关博客

RecyclerView相关博客【鸿洋_】[1] Android RecyclerView 使用完全解析 体验艺术般的控件[2] Android 优雅的为RecyclerView添加HeaderView和FooterView加载刷新[1] android 打造真正的下拉刷新上拉加载recyclerview(一):使用[2] android 打造真正的下拉刷新上拉加载recyclervi...

2019-01-29 18:44:41 167

原创 【笔记】设计模式 -- 原型模式

参考:[1] 史上最全设计模式导学目录(完整版)[2] 《Android源码设计模式解析与实战》文章目录1. 简介2. 定义3. 使用场景4. 原型模式的实现4.1 原型模式的通用实现4.2 Java提供的clone()方法4.3 浅拷贝和深拷贝5. 总结1. 简介原型模式是一个创建型模式。原型模式,顾名思义需要一个原型作为模板,使得我们可以通过这个原型对象复制出内部属性一致的新对象,...

2019-01-04 19:56:11 181

原创 【笔记】设计模式 -- 建造者模式

建造者模式参考:[1] 史上最全设计模式导学目录(完整版)[2] 《Android源码设计模式解析与实战》文章目录1.定义2. 使用场景3. 建造者模式的简单实现3.1 简单实现3.2 链式调用4 总结4.1 主要优点4.2 主要缺点建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道...

2019-01-03 18:41:04 156

原创 【笔记】设计模式 -- 单例设计模式

单例设计模式参考:[1] 史上最全设计模式导学目录(完整版)[2] 《Android源码设计模式解析与实战》单例设计模式是应用最广的模式之一。单例模式作为一种目标明确、结构简单、理解容易的设计模式,在软件开发中使用频率相当高,在很多应用软件和框架中都得以广泛应用。1. 定义确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,它提供全局访问的方法。单例模式是一种对象创建模式...

2019-01-02 10:39:34 172

原创 Android Studio快捷键

键盘快捷键Android Studio 为许多常用操作提供了键盘快捷键。 表 1 按操作系统显示了默认键盘快捷键。注:除了下面表 1 中的默认键映射外,您还可以选择多种预设的键映射,也可以创建自定义键映射。如需了解有关自定义键盘快捷键的详细信息,请参阅下面的配置自定义键映射。表 1. Windows/Linux 和 Mac 操作系统的默认键盘快捷键。 说明  ...

2018-12-29 11:31:24 101

原创 [笔记] 面向对象六大原则

面向对象的六大原则优化代码的第一步——单一职责原则英文全称为 Single Responsibility Principle,缩写是SRP。定义:就一个类而言,应该仅有一个引起它变化的原因,简单来说,一个类中应该是一组相关性很高的函数、数据的封装。让程序更稳定、更灵活——开闭原则英文全称为 Open Close Principle,开闭原则,缩写OCP。定义:软件中的对象(类、...

2018-12-18 15:46:20 160

原创 WebView加载html图片不显示问题

参考链接[1] webview加载https链接(终极解决方案,包括https链接加载http图片显示失败)[2] Android WebView 图片显示不了 http和https混合问题近期在项目中出现了一个问题,WebView加载html时,部分图片显示不出来,一直显示裂图,多方搜索,可能是因为http和https的混合问题。原因在Android5.0 以及以上的系统,当Web...

2018-11-06 12:14:03 7020

原创 Android的数据存储

Android的数据存储方式有哪些?Android的5中存储方式:· SharedPreferences(配置共享)· File I/O(文件存储):内存和外部存储· SQLite(数据库):数据库操作,数据库增删改查· ContentProvider(内容提供者)· 网络存储:上传数据和网络请求数据数据存储的三个维度 存储方式 安全 效率 量级 网络存储丢...

2018-10-31 11:37:47 607

原创 DateFormatUtil,好用的日期格式化工具类

这是一个日期格式化和解析的工具类。使用很方面哦。。。可以根据需求修改,增加常量,添加非空校验等。主要功能:格式化、解析、转换。import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** * Created ...

2018-10-15 19:03:41 1974

原创 ViewPager动态添加删除及刷新页面

目录:前言PagerAdapter 的刷新1 源码解析2 例子FragmentPagerAdapter的刷新1 源码解析2 例子ViewPager相关知识点1. 前言在此之前,我总是不得其解,同样都提供了notifyDataSetChanged()方法,为什么 ListView 的adapter使用刷新的方法非常好用,而 ViewP

2018-01-10 22:13:34 8794 1

原创 一个关于SharedPreferences的工具类

简介      之前,我使用的SharedPreferences的工具类,都是使用静态方法或单例,虽然使用起来还可以,但实用性上还是会有所欠缺。比如这个场景,我们需要将某些相关信息(比如用户信息、设备信息等)单独保存到一个SP文件,在需要时,统一清除掉。      假如不单独保存到一个SP文件,在需要清除某类信息时,就要通过key一个一个删除。如果单独保存,使用单例模式,势必要增加一个工具类。再如果

2017-11-24 17:12:14 259

原创 属性动画2:ValueAnimator高级进阶(一)

参考博客: [1] 启舰: 自定义控件三部曲之动画篇(五)——ValueAnimator高级进阶(一) [2]郭霖:Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法 [3] Developers :ValueAnimator [4] Android开发艺术探索 [5] Carson_Ho: Android 属性动画

2017-07-16 15:10:31 888

原创 属性动画1:基础知识和ValueAnimator

参考博客和文章 [1] Developers>API Guides>Property Animation [2] 安卓开发艺术探索 [3] 启舰: 自定义控件三部曲之动画篇(四)——ValueAnimator基本使用 [4] Carson_Ho:Android 属性动画:这是一篇很详细的 属性动画 总结&攻略 [5] 李海珍:插值器源码与曲线图 [6]pengkv

2017-06-30 10:50:50 856

github创建工程

github创建工程

2017-05-02

Activity生命周期示意图

Activity生命周期示意图

2017-05-02

空空如也

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

TA关注的人

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