自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

圆号本号

客户端@腾讯

  • 博客(208)
  • 资源 (3)
  • 收藏
  • 关注

原创 Activity 的 36 大难点,你会几个?「建议收藏」

前言学 Android 有一段时间了,一直都只顾着学新的东西,最近发现很多平常用的少的东西竟让都忘了,趁着这两天,打算把有关 Activity 的内容以问题的形式梳理出来,也供大家查缺补漏。本文中,我将一改往日写博客的习惯,全文用 XMind 将所有知识点以思维导图的形式呈现,欢迎大家食用~~神图一张图带你了解 Activity文章目录前言神图一、生命周期1.1 dialog弹...

2019-10-30 11:03:19 1075 4

原创 「Android」四大组件,你真的都掌握了?

Activity生命周期Activity A 启动另一个Activity B,回调如下:Activity A 的onPause() → Activity B的onCreate() → onStart() → onResume() → Activity A的onStop();如果B是透明主题又或则是个DialogActivity,则不会回调A的onStop;使用onSaveIn...

2019-10-24 17:26:09 2767

原创 7 道高频面试算法题,你都会了吗?「矩阵 + 位运算 + LRU」

矩阵螺旋矩阵给定一个包含 m x n 个要素的矩阵,(m 行, n 列),按照螺旋顺序,返回该矩阵中的所有要素。public List<Integer> spiralOrder(int[][] matrix) { ArrayList<Integer> rst = new ArrayList<Integer>(); if(matrix...

2019-10-21 20:58:04 807

原创 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」之 字符串处理+动态规划 合集!

字符串处理生成括号给定 n,表示有 n 对括号, 请写一个函数以将其生成所有的括号组合,并返回组合结果。public List<String> generateParenthesis(int n) { List<String> res = new ArrayList<>(); helper(n, n, "", res); re...

2019-10-19 17:08:04 626

原创 「面试高频」二叉搜索树+双指针+贪心 算法题指北

二叉搜索树验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 :输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,...

2019-10-16 14:29:25 495

原创 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」之 二分 + 哈希表 + 堆 + 优先队列 部分!

二分二分搜索public int binarySearch(int[] arr, int start, int end, int hkey){ if (start > end) { return -1; } int mid = start + (end - start) / 2; //防止溢位 if (arr[mid] > h...

2019-10-15 14:17:46 375

原创 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」必问之 链表 + 栈 + 队列 部分!

链表public class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; }}删除节点public class ListNode { int val; ListNode next; ...

2019-10-13 10:36:30 364

原创 面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」必问之 排序 + 二叉树 部分!

排序冒泡排序思路:1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何视频:数据结构排序算法之冒泡排序演示示例代码:publ...

2019-10-11 08:18:06 437

翻译 高效解决「SQLite」数据库并发访问安全问题,只这一篇就够了

Concurrent database access本文译自:https://dmytrodanylyk.com/articles/concurrent-database/对于 Android Dev 而言,有关 SQLite 的操作再经常不过了,相比你一定经历过控制台一片爆红的情况,这不禁让我们疑问:SQLite 到底是线程安全的吗?OK 废话不多说,我们 ⬇️直接开始首先,假设...

2019-10-07 09:33:37 965

原创 每个人都要学的图片压缩终极奥义,有效解决 Android 程序 OOM

由来在我们编写 Android 程序的时候,几乎永远逃避不了图片压缩的难题。除了应用图标之外,我们所要显示的图片基本上只有两个来源:来自网络下载本地相册中加载不管是网上下载下来的也好,还是从系统图片库中读取的图片,都有一个相同的特点:像素一帮较高。同时我们都知道,Android 系统分配给我们每个应用的内存是有限的,由于解析、加载一张图片,需要占用的内存大小,是远大于图片自身大小的...

2019-10-01 17:24:38 369

原创 Android 让你的 Room 搭上 RxJava 的顺风车 从重复的代码中解脱出来

什么是 Room ?谷歌为了帮助开发者解决 Android 架构设计问题,在 Google I/O 2017 发布一套帮助开发者解决 Android 架构设计的方案:Android Architecture Components,而我们的 Room 正是这套方案的两大模块之一。定义:数据库解决方案组成:Database、Entity、DAO为什么本文叫谷歌范例?为了方便开发者进行...

2019-09-24 17:54:26 1002

翻译 在 Mac 上安装 Git ,生成 SSH 密钥用于 GitHub 授权

在本教程中,将介绍如何在 Mac 上安装 Git,如何生成SSH密钥,以及如何将您的公共 SSH 密钥上传到 GitHub 帐户进行授权。如何在你的 Mac 上安装 Git ?打开‘终端’输入如下命令:$ brew install git具体方法查看其官方文档 :https://brew.sh/这将在您的系统上安装 Git。若要确认是否安装成功,请输入:$ git --v...

2019-09-20 09:48:50 9519 1

翻译 ViewModel 和 ViewModelProvider.Factory:ViewModel 的创建者

朋友们好,今天我向大家介绍下 ViewModel 中如何使用 ViewModelProvider.Factory.现在开始所以,我们首要问题是:什么是 ViewModelProvider.Factory ?让我们在不使用 ViewModelProvider.Factory 的情况下,试着创建一个 ViewModel 看看:在活动中实例化:有没有人注意到:当我们使用 ViewMo...

2019-09-15 20:20:34 15250 7

原创 数值分析 有效数字计算

与高中的有效数字有些不同,数值分析中的有效数字定义如下:定义设数x是数x的近似值,如果x的绝对误差限是它的某一数位的半个单位,并且从x左起第一个非零数字到该数位共有n位,则称这n个数字为x的有效数字,也称用x近似x时具有n位有效数字。—《数值分析(第2版)》张铁 阎家斌 冶金工业出版社举例接下来,我们以几道例题为例:例一首先,我们可以获得 |π - x1| 的值 :0.001...

2019-08-27 21:00:29 13328 3

原创 Navicat 从破解下载到连接 SQLite ,这一篇就够了!

Navicat 是目前市面上使用及其广泛的一款可视化数据库开发管理软件,它不仅可以连接本地/服务端的 MySQL 数据库,甚至还可以连接移动端虚拟机/真机,上的 SQLite 数据库,本文将带领你下载破解版 Navicat ,并连接上虚拟机的数据库破解下载篇作为一个个人开发者,正版 Navicat 实在是太贵了,但是网络上的教程基本都是先下载,在破解的思路,这里我给大家一个连接,大家直接...

2019-07-19 15:01:32 2070 1

原创 单例模式-全局可用的 context 对象,这一篇就够了

单例模式在各个方面都有着极为广泛的使用,所谓单例,顾名思义就是整个程序中只有一个该类的实例,所以它成功保证了整个程序的生命周期内该类的对象只能创建一次,并且提供全局唯一访问该类的方法:getInstance()使用关于单例模式主要分为两类:懒汉模式饿汉模式由于饿汉模式是线程安全的,所以通常情况下,我们都尽量采用饿汉模式,具体原因常见这位大佬的博文:点击前往本文主要结合 And...

2019-07-17 17:13:04 1377

原创 缩放手势 ScaleGestureDetector 源码解析,这一篇就够了

其实在我们日常的编程中,对于缩放手势的使用并不是很经常,这一手势主要是用在图片浏览方面,比如下方例子。但是(敲重点),作为 Android 入门的基础来说,学习 ScaleGestureDetector 的使用,算是不得不过的一道坎,好在 ScaleGestureDetector 使用起来非常简单,就是源码分析上得花些功夫。本文首先将简单的介绍下 ScaleGestureDetector 的使...

2019-06-30 14:31:21 980

原创 看完这篇还不会 GestureDetector 手势检测,我跪搓衣板!

引言在 android 开发过程中,我们经常需要对一些手势,如:单击、双击、长按、滑动、缩放等,进行监测。这时也就引出了手势监测的概念,所谓的手势监测,说白了就是对于 GestureDetector 的用法的使用和注意要点的学习。注:由于缩放手势独有的复杂性,我打算后期将其单独拿出来归纳总结。像网上其他将手势监听的博客一样,本文将以双击事件为引子,逐步展开探讨 Android 手...

2019-06-29 14:22:30 416

原创 Android 属性动画框架 ObjectAnimator、ValueAnimator ,这一篇就够了

前言我们都知道 Android 自带了 Roate Scale Translate Alpha 多种框架动画,我们可以通过她们实现丰富的动画效果,但是这些宽家动画却有一个致命的弱点,它们只是改变了 View 显示的大小,而没有改变 View 的响应区域。这时以 ObjectAnimator、ValueAnimator 为代表的属性动画也就应运而生了。...

2019-06-19 10:06:34 1014

原创 Android 逐帧动画( Drawable 动画),这一篇就够了

前言作为 Android 最常见的两种动画形式,逐帧动画( Drawable 动画),有着极其广泛的应用,它的原理与早起的电影以及 GIF 类似,就是把一张的图,按顺序快速切换,这样一来看上去就好像会动一样。实例,大家先看看效果大家明显可以看到这是一个动图,但是它并非一个 GIF 它是由八张单独的图片,间隔 200ms 连续播放所实现的效果。实现方法这里我给大家介绍两种...

2019-06-17 13:31:42 664

原创 看完这篇再不会 View 的动画框架,我跪搓衣板

引言众所周知,一款没有动画的 app,就像没有灵魂的肉体,给用户的体验性很差。现在的 android 在动画效果方面早已空前的发展,1.View 动画框架 2.属性动画框架 3.Drawable 动画。相比后后两者,View 动画框架在 Android 的最开始就已经出现,即有着非常容易学习的有点,却也有着用法太死的毛病,但对于初学者而言,猪狗实现各种可选的效果了。组成对于 Vie...

2019-06-14 22:09:44 550

原创 Android 自定义时钟控件 时针、分针、秒针的绘制这一篇就够了

前言对于 Android 开发者来说,自定义 View 是绕不开的一个坎。二对一自定义 View 自定义时钟必然是首选,那么我们该如何绘制自定义时钟呢?本篇我结合 github 上一个有趣的三方库,来给大家讲讲如何作出我们的第一个时钟现在开始:目录前言现在开始:前期准备:重写 onMessure() 方法配置 xml 文件开始搭建之旅获取当前时间...

2019-06-12 21:19:49 2261 1

转载 intellij idea常用快捷键

intellij idea常用快捷键Ctrl快捷键 介绍Ctrl + F 在当前文件进行文本查找 (必备)Ctrl + R 在当前文件进行文本替换 (必备)Ctrl + Z 撤销 (必备)Ctrl + Y 删除光标所在行 或 删除选中的行 (必备)Ctrl + X 剪切光标所在行 或 剪切选择内容Ctrl + C 复制光标所在行 或 复制选择内容Ctrl + D 复制光标所在行 ...

2019-06-11 00:17:25 166

原创 android 自定义控件之-绘制钟表盘

引言Android 自定义 View 应用非常广泛,最近逛 github 是偶然发现一个 Demo 感觉写的很好,我结合着这个项目的内容,给大家讲讲如何绘制时钟表盘,也算是加深下自己对自定义 View 的理解,涉及内容比较多,大家慢慢吸收。最后效果:步骤:目录引言最后效果:步骤:让我们先搭建这个 View绘制外围小时圆环的准备工作开始绘制外围圆环运行...

2019-06-10 23:06:19 515

原创 Android 进阶自定义 ViewGroup 自定义布局

前言在我们的实际生活中, 经常需要用到自定义控件,比如自定义圆形头像,自定义计步器等等。但有时我们不仅需要自定义控件,举个例子,FloatingActionButton 大家都很常用,所以大家也很经常会有一种需求,点击某个 FloatingActionButton 弹出更多 FloatingActionButton ,这个需求的一般思路是写 n 个 button 然后再一个个的去设置动画效果。...

2019-06-07 16:49:46 997 1

原创 Android 自定义 view 之自定义布局属性 xml 属性

引言上一篇点击查看 https://blog.csdn.net/qq_43377749/article/details/91045764我们讲到了自定义 view 的基本方式,但是我们也发现,使用这种方式,用户(广大程序员同胞们)只能使用父类控件的属性,但是我们有时需要更多的功能,比如:图片控件需要改变透明度,卡片控件需要设定阴影值等等,那么父类控件的属性显然不够用了,这时我们就要开始实现自...

2019-06-07 12:54:40 1665 1

原创 Android 自定义控件 自定义 View 入门必备

自定义 View在实际使用的过程中,我们经常会接到这样一些需求,比如环形计步器,柱状图表,圆形头像等等,这时我们通常的思路是去Google 一下,看看 github 上是否有我们需要的这些控件,但是如果网上收不到这样的控件呢?这时我们经常需要自定义 View 来满足需求。接下来让我们开启自定义控件之路关于自定义控件,一般辉遵循一下几个套路首先重写 onMeasure() 方法...

2019-06-06 16:15:44 1138 1

原创 Android 精通活动「activity」四大启动模式

活动的四大启动模式活动即「activity」对于 Android 应用来说,有着不可剥离的作用,对于初学者一般来说,都只是使用了默认(standard)模式,不管发生什么情况,只要需要活动跳转,就直接新建出一个活动,随着项目越写越复杂,活动也越写越多,反复的切换活动不仅给内存带来了负担,更是给用户带来了极大的不便。活动「activity」四大启动模式standard、 sin...

2019-06-04 01:09:17 514 1

原创 Android 入门知识点梳理之一 四大组件

四大组件学 android 也有快一年了,打算好好梳理下自己学过的知识,方便巩固、复习Android 四大组件Android四大组件 --- Activity生命周期:onCreate()->onStart()- >onResume()->onPause()->onStop()->onDestroy()Activit...

2019-06-03 17:01:07 714

原创 Android 四大组件 BroadcastReceiver 深入剖析注册与使用!

BroadcastReceiver作为 Android 的四大组件之一 BroadcastReceiver 有着非常广泛的使用。要想使用 BroadcastReceiver 搜先高搞明白 Broadcast 目前来看,Broadcast 也就是所谓的广播,主要分为两种:普通广播 和 有序广播。故名思意,Broadcast 就是用于发出消息,而 BroadcastReceiver 则是用来接...

2019-06-02 23:11:27 1319 1

原创 IntentService 高级使用指南

IntentService在实际过程中,我们经常会遇到一些需求,比如在后台加载一些图片,或者下载一些文件,这个时候我们通常就会用到 Service ,但是 service 有个弊端:Service不会专门启动一条单独的进程,Service与它所在应用位于同一个进程中;Service也不是专门一条新线程,因此不应该在Service中直接处理耗时的任务;所以如果我们的 Service 是要为活动服...

2019-06-02 23:11:14 506 1

原创 Android 广播「BroadcastReceiver」接收不到「Intent」的信息

BroadcastReceiver & Intent我们在工作的过程中,经常会使用到BroadcastReceiver 机制,用来向活动发送消息,更新服务内的数据信息。但是我在这一过程中发生了一个低级错误,我向广播发送两种 Action 类型的 Intent,结果始终接收不到,或者只能接收到一个 Intent 信息预测效果:进度条但是实际:进度条满了之后无法关...

2019-06-02 14:55:59 4024

原创 Android 深入剖析 Service 服务机制

ServiceService是一个可以在后台执行长时间运行操作而不提供用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行。本地服务(LocalServic...

2019-06-01 15:33:04 1452 1

原创 Android 活动机制详解「activity」

Activity一个应用通常由多个彼此松散联系的 Activity 组成。 一般会指定应用中的某个 Activity 为“主”Activity,即首次启动应用时呈现给用户的那个 Activity。 而且每个 Activity 均可启动另一个 Activity,以便执行不同的操作。生命周期:onCreate()->onStart()- >onResume(...

2019-06-01 11:41:26 947 2

原创 Android 双击退出程序但活动不结束功能!

本片博客将详细介绍:Android 活动中 onKeyDown() onKeyUp() onBackPressed() 三个方法的关系及使用 最后给出实现双击退回桌面的源码实例大家经常能接到一个需求app 退到主界面之后,点击一下 home 键弹出提示:”再点一下退出程序“,要实现这个功能,首先就要先搞懂这三个方法之间的调用关系。所以,见名知意:onKeyDow...

2019-05-31 12:28:13 639

原创 Web 全栈架构师学习路线

什么是Web全栈架构师?通晓后端语言比如JAVA PHP go,前端语言,js html css 前端框架 vue react 常用的数据库 中间件,有比较强的运维能力,架构设计能力。那我们该如何学习呢?“开课吧”邀请百度前端架构师大盛,整理出一份xmind——“Web全栈架构师所需技术栈”,对于需要了解大前端方向的移动开发者,提供一些借鉴和参考。来吧,让我们一...

2019-05-30 09:26:13 1252 1

原创 Android-多个 FlaotingActionButton 组合效果实现

我们在实际应用过程中,经常需要实现点击FlaotingActionButton 弹出多个FlaotingActionButton 的效果,除了三方库的使用之外,这里我在推荐一种新的思路首先我们在 xml 文件中添加五个 FlaotingActionButton 按钮,我的思路是:五个按钮相互叠加,只显示最上层的按钮: <android.support.design...

2019-05-29 12:25:30 1218

原创 onTouchEvent 监测不到滑动事件

我们通常会在活动里重写onTouchEvent() 方法,来监听滑动事件,如下:@Overridepublic boolean onTouchEvent(MotionEvent event) { Toast.makeText(MainActivity.this, "slipe", Toast.LENGTH_SHORT).show(); //继承了Activity的o...

2019-05-28 20:17:29 864

原创 Material Design 进阶之一-项目搭建和包管理

概述我们挑战自我,为用户创造了崭新的视觉设计语言。与此同时,新的设计语言除了遵循经典设计定则,还汲取了最新的科技,秉承了创新的设计理念。这就是原质化设计(Material Design)。这份文档是动态更新的,将会随着我们对 Material Design 的探索而不断迭代、升级。开始在开始之前,我们需要对我们的项目做一些基本的准备:首先,为了方便项目的维护,对您的 str...

2019-05-28 16:14:53 467

原创 Android-Picasso 库中找不到 .with() 方法

今天学习了 Frasco Glide 等开源库的用法,结果用到 Picasso 的时候卡壳了,其他库都是用 .with() 方法,获得调用他们的活动,偏偏 Picasso 死活出不来这方法网上查了一通都是没问题的,于是推测应该是版本更新了,于是查了下官方文档:https://github.com/square/picasso/commit/e7e919232fe2b15772a7fc...

2019-05-28 10:14:42 2243 3

2024 年国考申论大作文 11 篇必背范文

2024 年国考申论大作文 11 篇必背范文

2023-12-05

【黑龙江大学】人机交互实验源码分享 - 学习参考使用,请勿抄袭

本实验代码仅供参考,如果有能力的同学,也可以前往我的 GitHub 免费下载:https://github.com/hornhuang/human-computer-interaction

2020-07-25

【 Android 】动态改变ListView

动态添加带图片的listview 用Bitmap从相册获得图片,于editview中的文字一起发送,添加到ListView

2018-11-16

黑龙江大学汇编实验6 子程序设计

从键盘输入10个十进制数,存入BUFFER缓冲区中,计算10个数的和,并用十进制数显示和。 提示:1.黑龙江大学汇编实验6 2.二进制转十进制,用除法运算来实现

2018-10-31

空空如也

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

TA关注的人

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