自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Mr.Dong的博客

不积硅步,无以至千里。不积小流,无以成江河

  • 博客(44)
  • 收藏
  • 关注

原创 Android 2020年夏招面试题(一)

时光如白驹过隙,忽然而已。2020年金三银四随着疫情的影响现在变成金五银六了,有的小伙伴可能一年都要在找工作当中了(捂脸而泣),下面说一下我面试中遇到的问题,本人三年Android菜鸡一枚。。。1.简介java类加载机制,什么是双亲委托机制以及原理Java中的类加载是在JVM虚拟机中实现的,JVM是Java能实现跨平台重要原因,Android中的热修复技术中的原理其实也是利用Java类加载原理,说清楚双亲委托机制其实也就回答的差不多了答:https://blog.csdn.net/u01430711

2020-08-05 14:53:12 878

转载 Android自定义蒙层

在开发过程中有时候会遇到特定情况下显示蒙层的需求,比如在点击某个Edittext搜索框时,部分界面出现浅透明蒙层:自定义蒙层:class MongolianView(context: Context, attrs: AttributeSet?):LinearLayout(context, attrs){ var clickListener: (() -> Unit)? =null override fun dispatchDraw(canvas: Canvas?) {

2022-05-25 10:50:57 752 1

原创 Android踩坑笔记一(派对飘屏处理)

刚接到这个需求的时候,我没有在意,原来有这个功能不就改个UI能有多难,1小时搞定,直到摔了一次又一次,我才意识到(我大意了,没有闪),效果如下(动效就是,飘屏从屏幕的右边漂到左边)因为TextView的背景要跟随文字变长,同时背景也比较复杂,所以必须用到.9,所以我用Android Studio制作了.9图(不会做的可以去百度)第一个坑 设置.9图后,文字不显示将.9图设置成为背景之后,字没了,人傻了,解决方案TextView在调用 setBackgroundResource方法之后,再调用 se

2022-05-15 12:05:50 661

原创 Android自定义View第五弹(可滑动的星星评价)

个人开发中自定义View系列(有需要的可以点击查看收藏)Android自定义view第一弹(防小米计步)Android自定义View第二弹(旋转的体重)Android自定义View第三弹(反人类尺子)Android自定义View第四弹(Kotlin流式布局)距离上一篇自定义view已经过去了一年多了,这次主要给大家介绍的是可滑动的星星评价,虽然Google官方也提供了 RatingBar 但是没办法满足我的需要只能自己定义一个了,废话不多说先上图:这个选中以及默认的心型都是UI提供的图片

2022-02-21 16:40:20 1983

原创 Kotlin中通过@Parcelize注解实现Parcelable序列化

1.引入plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-android-extensions' id 'kotlin-kapt'}android { ... androidExtensions { experimental = true } ... ... compileOptions { sourceC

2022-02-09 10:47:55 1832

原创 Kotlin中的位运算符

表格中是对kotlin对应的Java位运算符的表示方法Kotlin 符号含义Java中含义相同的符号and(bits)位与&or(bits)位或|inv(bits)位非~xor(bits)位异或^shl(bits)左移<<shr(bits)右移>>ushr(bits)无符号右移>>>Kotlin中的 位运算符 只对Int和Long两种 数据类型 起作用!...

2022-02-09 10:43:35 1528

原创 Android从源码分析RecyclerView四级缓存复用机制二(复用ViewHolder)

上一篇文章说了RecyclerView的四级缓存中的缓存ViewHolder,文章链接在这里:Android从源码分析RecyclerView四级缓存复用机制一(缓存ViewHolder)列表视图在原生开发中一直占用重要地位,不管是之前的ListView还是现在RecyclerView,无论实在性能上还是使用功能上都有着巨大的优势,其中最重要的其实还是对于视图的复用机制。从ListView的RecycleBin到RecyclerView的Recycler,Google对于列表视图的缓存的设计一直非常考究值

2021-04-20 17:48:54 241

原创 Kotlin plugin should be enabled before ‘kotlin-android-extensions‘

问题:Kotlin plugin should be enabled before ‘kotlin-android-extensions’android studio从3.4.2升级到3.5.2了之后编译出现了以上问题解决方案:apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'在相应的library的gradle中将’kotlin-android’放在’kotlin-android-extensions

2021-04-18 16:26:35 810

转载 Kotlin 双冒号 :: 使用

Kotlin 中 双冒号操作符 表示把一个方法当做一个参数,传递到另一个方法中进行使用,通俗的来讲就是引用一个方法。先来看一下例子:fun main(args: Array<String>) { println(lock("param1", "param2", ::getResult))}/** * @param str1 参数1 * @param str2 参数2 */fun getResult(str1: String, str2: String): String =

2021-04-18 14:59:15 618

转载 kotlin注解处理器插件kapt的使用

kapt是kotlin的注解处理器,用法很简单在 Kotlin 中则需要添加 kotlin-kapt 插件激活 kapt,并使用 kapt 替换 annotationProcessor:配置 在app build.gradle 中 激活apply plugin: 'kotlin-kapt'使用dependencies { ... kapt "com.google.auto.service:auto-service:1.0-rc7"}ok,这样就完成了kotlin中的kapt

2021-04-18 14:47:01 4055

原创 Android从源码分析RecyclerView四级缓存复用机制一(缓存ViewHolder)

先说一下结论RecyclerView的四级缓存分别为:mChangeScrap与 mAttachedScrap 用来缓存还在屏幕内的 ViewHoldermCachedViews 用来缓存移除屏幕之外的 ViewHoldermViewCacheExtension 开发给用户的自定义扩展缓存,需要用户自己 管理 View 的创建和缓存RecycledViewPool ViewHolder 缓存池...

2021-03-25 18:18:14 1294 1

原创 Android事件分发机制解密二(View处理)

上一篇文章已经分析了事件从Activity->ViewGroup传递的过程,以及ViewGroup事件分发的过程,上一篇文章在这(滑稽.jpg):Android事件分发机制解密 一 ( ViewGroup分发)这篇文章主要介绍View对于事件的处理...

2021-03-18 15:32:12 2141 12

原创 Android事件分发机制解密 一 ( ViewGroup分发)

曾几何时,当我还是一个Android小菜鸡的时候,我就被问过事件分发机制,当时我都是百度来的博客看看,回答的很浅显,当时是记住了过一段时间就忘。现在写一篇博客记录一下,下次在被问到就不怕了。一.为什么要理解事件分发?1.为了解决事件冲突(事件冲突就是:事件只有一个,多个控件想要处理且处理的控件不是我们想要给的控件就发生了冲突)2.为了不被面试官问的一脸懵逼( 懵逼警告⚠️ )二.事件是什么?简单的来说:事件(MotionEvent)就是手指触摸手机屏幕而产生的,具体的产生过程后面有机会再分析。

2021-03-16 16:23:37 2311 10

转载 Java 位运算符 &、|、^、~、<<、>>、>>>

撸了N久的代码,但是突然冒出来个位运算,我就蒙蔽了,这是什么?我是谁?我在干什么?我在哪?(⊙_⊙)1)闲扯关于位运算符无非也就 与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>)、无符号右移(>>>)位运算其实就是二进制的运算,加减乘除适用于十进制,而位运算就是二进制的运算,但是由于我们的运算都是基于十进制来说的,所以会有点绕,略微有点难懂,接下来言归正传2)关于二进制我们在编码过程中应该会了解很多不同的进制,除去常用的十进制

2021-03-15 16:10:54 274

原创 使用Hexo+github搭建个人博客

很早以前就想搭建个个人博客,可惜我只是个Android切图仔,目前也自学了后台,但是写前端页面写的贼垃圾,自己写不知道要写到猴年马月,群友介绍发现了可以使用Hexo搭建个人博客,而且托管在github平台,后面准备迁移到自己的服务器,先记录一下搭建Hexo个人博客的步骤~废话不多说,老规矩先上图:( 美哭了???? )一:首先你要有个GitHub账号,然后在GitHub上面新建一个仓库,用来放自己的博客代码1:新建一个仓库创建一个和你用户名相同的仓库,后面加.github.io后缀(必须是你的用

2021-03-01 14:53:35 310

原创 Recyclerview 滑动过程中更新数据崩溃问题

今天遇到的一个Bug,这里纪录一下,如果下次再遇到,可以直接拿来用。这个算是Android官方的一个Bug,迟迟没有解决,网上可以看到一大群人遇到该问题,说白了就是还没有绘制完不能刷新限制住了就可以了。报错信息:java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 21(offset:21.state:20 at android.support.v7.widget.Recycl

2021-02-08 15:32:02 1388 4

原创 LeetCode刷题(二)移动零

一.题目给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。二.解题思路本题的解题思路主要还是用的快速排序的思想,首先要确定一个待分割的元素做中间点X,然后把所有小于等于X的元素放在左边,大于X的元素放在右边。这的中间点就是0本身,所以实现起来比快速排序简单很多,我们使用两个指针i和j,只要nums[i]!=0,我

2020-10-24 12:14:41 141

原创 Android BaseActivity的设计(一)

public abstract class BaseActivity extends AppCompatActivity { private static final int SLIDE_TRANSITION_TIME = 1 * 1000;//滑动转场的时间 public Fade mFadeTransition; @Override protected void onCreate(@Nullable Bundle savedInstanceState) {

2020-09-21 15:58:34 2965

转载 Java中Map遍历的四种方式

工作三年了居然还要百度Map遍历????,无奈自己写个博客长点记性。在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方式去遍历。方法一:在for循环中使用entries实现Map的遍历:/*** 最常见也是大多数情况下用的最多的,一般在键值对都需要使用 */Map <String,String>map = new HashMap<String,String>

2020-09-18 10:59:25 582

转载 Android Q(10.0)版本新特性和兼容性适配

北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了。Android Q 为开发者们带来了许多新功能,如折叠屏增强项、新网络连接 API、全新的媒体解码器、摄像头新功能、NNAPI 扩展、Vulkan 1.1 图形支持等等。2019/4 Beta2版本发布 ,5月份将会正式发布,本文将带大家对Android Q变更和新特性的详细解读。还有一点值得Android开发者注意的事件,华为应用市场在3.26日

2020-09-11 13:58:47 690

原创 Java 并发编程面试题总结(一)

周末写

2020-09-10 18:38:04 152

原创 Android 开发中常用英语词句

不积硅步无以至千里,不积小流无以成江海,这篇博客主要是记录在开发中遇到的一些常用的生词和句子,帮助自己理解和记忆,提高开发效率(本篇博客会持续更新,欢迎各位大佬收藏点赞????)。1.Reveal in Finder 在访达中打开2....

2020-08-17 11:47:24 581

原创 Android Gradle 编译问题汇总

Error: Invoke-customs are only supported starting with Android O (–min-api 26)compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8}将代码添加到app的build.gradle的android节点下apply plugin: 'com.

2020-08-12 15:53:15 290

原创 LeetCode刷题(一)两数相加

一.题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807二.解体思路说真的,第一眼看到这个题目的时候我没明白到底这

2020-07-24 15:23:41 173

原创 Android开发中常用的git命令以及遇到的问题

从事Android开发也有三年了,之前一直习惯使用SourceThree(真香),导致git命令一直不是很熟悉,后来转眼一想如果有一天自己要独当一面如果连git命令都不会是不是太low了,所以就卸载了SourceThree开始使用git命令,下面记录一下使用以及使用过程中遇到的一些问题,忘了的时候可以看看,根据个人使用频率或重要程度排序:1.拉取远程分支内容(每次提交之前记得先拉取一下远程分支的内容)git pull 2.推送本地更新到远程git push 3.强制推送(慎用,除非你认为其他冲

2020-07-17 14:35:11 278

转载 什么是僵尸进程(Zombie)?

分析Android启动过程的时候,提到了僵尸进程,看到一篇文章写的不错,转载一下,原文链接:http://www.nowamagic.net/librarys/veda/detail/1994僵尸进程是指一个已经终止、但是其父进程尚未对其进行善后处理获取终止进程的有关信息的进程,这个进程被称为“僵尸进程”(zombie)。怎样产生僵尸进程一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit, 它的作用是使进程退出

2020-07-09 13:45:19 2797

原创 Android自定义View第四弹(Kotlin流式布局)

拖更了1年半,工作太忙了,最近有时间练习一下Kotlin,2017年Google Android开发大会上宣布Kotlin为Android开发第一语言。相信以后用Kotlin会越来越多,之前写过一篇流式布局,这次用Kotlin写一遍,废话不多说,上图:下面是实现这个流式布局的核心代码class FlowLayout(context: Context) : ViewGroup(context) { private val TAG = "FlowLayout" /** * 在布

2020-07-06 13:15:33 1389

原创 Android ShapeDrawable 虚线 的显示问题

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <stroke android:width="1dp" android:color="#979797" android:dashGap=...

2019-04-23 17:39:39 355

原创 Android中RecyclerView左右侧滑

recyclerview在Android中应用的也很多了。废话不说多,先上图: 1.向右侧滑 2.向左侧滑 下面开始讨论一下关于这样的效果实怎么实现的: 1.首先创建一个侧滑的接口:public interface ItemTouchHelperAdapter {/** * Called when an item has been dragged far enough t...

2018-08-27 14:54:32 5300

原创 2018年Android最新面试题(一)

最近在忙着找工作,所以趁热打铁写一份Android最新的面试题,希望可以帮助到大家。一直被问的问题Glide的源码(重点),最好和Picasso比较着说。 Glide原理(自己看):https://www.jianshu.com/p/3d699bf007c71.什么是接口?Android中有哪些机制是基于接口编程? 接口就是一些方法特征的集合,用interface修饰。 面向接口编程:h...

2018-02-28 17:45:42 27867

原创 Android首页Double Click 返回键退出程序

private long exitTime = 0;@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { exit(); return false; } return super.o

2018-01-19 19:07:00 315

转载 解决ScrollView嵌套RecyclerView 滑动卡顿和嵌套多个RecyclerView 显示不全的问题

转载自:http://blog.csdn.net/jifashihan/article/details/72828456ScrollView嵌套RecyclerView ,滑动会卡顿,解决方法是://防止滑动卡顿 GridLayoutManager gridLayoutManager=new GridLayoutManager(this, 4){ @Overrid

2018-01-19 18:59:45 403

原创 Android自定义View第三弹(反人类尺子)

自定义view,反人类尺子

2017-12-15 14:30:46 1578

原创 Android自定义View第二弹(旋转的体重)

废话不多说先上图:左下体重 (有旋转的动画)废话不多说上代码:一.自定义View代码/** * Created by DYJ on 2017/9/21. */public class MyCustomerView extends View{ /**圆点画笔*/ Paint pointPaint ; /**圆弧画笔*/ Paint arcPaint ; /**

2017-12-15 13:39:36 726 3

原创 Android自定义view第一弹(防小米计步)

废话不多说,先上效果图: 右上脚的计步(有动画效果) 从来不说废话,上代码: 一.自定义View 代码/** * 计步View * Created by DYJ on 2017/8/3. */public class RunningView extends View { /** * 圆弧的宽度 */ private float borde

2017-12-11 13:28:04 1745 2

原创 Android 资源太多怎么办,快来分包

Android Studio 下对资源文件进行分包

2017-10-15 22:33:09 449 1

原创 Android接口回掉步骤

Android接口回掉步骤总结

2017-10-06 15:31:16 571

原创 Gson的混淆打包问题

Gson的打包混淆错误

2017-09-24 15:23:48 558

原创 关于在EventBus混淆打包问题

解决EventBus打包混淆问题

2017-09-24 15:10:16 1361 5

转载 Android APP启动时出现白屏或者黑屏怎么办?

Android黑白屏的处理

2017-07-23 16:52:48 621

空空如也

空空如也

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

TA关注的人

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