![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
「已注销」
水之积也不厚,则其负大舟也无力;风之积也不厚,则其负大翼也无力。
展开
-
自定义RadioGroup实现TabLayout
先来看一下效果图:其实核心功能就两个:1、选中后改变字体颜色及加上下标2、事件回调实现思路:1、通过向RadioGroup中添加RadioButton实现Tab的填充2、通过设置设置特定属性去除选择按钮效果3、通过使用Selector控制RadioButton的字体及下标具体实现准备下标的drawable:<?xml version="1.0" encoding="ut...原创 2020-05-06 21:54:17 · 309 阅读 · 0 评论 -
ViewPager实现Fragment懒加载
通过在onPageChangeListener中调用懒加载,当Fragment切换到下一个或者切换中进行懒加载。1、先写一个接口原因:1、隔离具体实现(不依赖具体Fragment,否则在用的时候就需要一个一个对具体实现进行判断)2、仅处理需要懒加载的Fragmentpublic interface ILazyLoad { void lazyLoad();}2、实现接口这里...原创 2020-05-02 14:48:44 · 273 阅读 · 0 评论 -
FileProvider使用(拍照、安装APP、共享文件)
FileProvider在Android7.0及之后我们无法直接将一个FileUri共享给另一个程序进行使用。系统会抛出一个异常FileUriExposedException。官方是这样描述的:The exception that is thrown when an application exposes a file:// Uri to another app.当一个应用程序暴漏一个fil...原创 2019-12-21 09:57:13 · 3106 阅读 · 0 评论 -
Android6.0优雅权限请求封装
Android优雅权限请求封装先来看看不封装的情况下代码是如何写的,这里我们首先要判断是否存在特定的权限,如果存在才能进行特定操作,否则就要请求权限。最后请求的结果只能放在onRequestPermissionsResult中进行处理。这样写有几个不好的地方,第一就是你的判断逻辑是重复的,再者就是一旦有新的权限需要添加那么就需要修改onRequestPermissionsResult中的代码,根...原创 2019-09-21 14:59:50 · 146 阅读 · 0 评论 -
ContentProvider(内容提供器)概念篇
前言What is the key,when we learn something?先来拽一句英语,也就是说当我们学习一个技术点的时候,我们应该学习的是什么?我认为最应该学习的是它背后的思想以及逻辑。接下来我们就从概念上,或者说从更高的角度来看ContentProvider,它究竟是个什么鬼,体现了什么思想,有什么可以借鉴的。ContentProvider的作用Content provide...原创 2019-09-11 16:58:21 · 376 阅读 · 0 评论 -
自定义View实现LinearLayout
上一篇:自定义View实现TextView自定义View实现LinearLayoutLinearLayout是我们常用的布局之一,下面我们通过继承ViewGroup来自己写一个具有纵向布局的LinearLayout。先来看效果图:onMeasure这里我们新建了一个类名为MyLinearLayout,其中我们重写了onMeasure函数用于处理当前View的大小。这里主要对第二部进...原创 2019-09-06 15:36:34 · 408 阅读 · 0 评论 -
Android中OptionMenu的使用总结
OptionMenu基本使用下图是一个基本的OptionMenu,基本使用是三个步骤:创建资源文件、重写onCreateOptionsMenu加载菜单、重写onOptionsItemSelected处理点击事件。Step1:创建资源文件上图图中的三个点是其他隐藏的菜单,以下我们成为折叠菜单。这里简单说一下showAsAction,它包含但不仅有以下几种:1、always表示无论标题栏...原创 2019-08-30 14:29:12 · 546 阅读 · 0 评论 -
视图动画-View Animation
1、What is View Animation视图动画主要有两种:一、Tween Animation译为“补间动画”1、scale译为“规模、比例”,是对View进行特定范围的缩放2、alpha通过改变View的透明度实现View隐现的效果3、translate译为"转移",是对View进行位置的移动4、rotate译为“旋转”,是让View围绕特定的点进行旋转PS:所有View的...原创 2019-08-29 19:01:35 · 185 阅读 · 0 评论 -
自定义View实现TextView
自定义View实现TextViewTextView是我们常用的View之一,下面我们来自定义一个TextView,实现基本的TextView功能。以下不涉及基本的理论概念,概念篇参见上一篇文章。准备工作这里我们初始化了一些要用到的数据,其中有字体的颜色和大小以及文字内容的画笔。public class MyTextView extends View { private float ...原创 2019-08-29 16:52:35 · 226 阅读 · 0 评论 -
自定义View三大流程理论篇
自定义View三大流程理论篇以下介绍了自定义View的相关理论知识,具体实操见下一篇。自定义View理论篇之onMeasureMeasure是测量的意思,顾名思义这个函数主要是用来设置我们自定义的View大小的。或许你可能会疑惑:我们在Xml文件中不是定义了大小了吗,为什么还需要再次测量,我们的 layout_width和layout_height 参数是可以不用传递具体尺寸的,例如 wra...原创 2019-08-29 16:51:59 · 318 阅读 · 0 评论 -
自定义View理论篇之View基础结构
自定义View理论篇之View基础结构在学习一个东西的使用或者一项技能,首先就是要知道这个东西的出现解决的是什么问题,显而易见自定义View的出现就是系统自带的View不能满足我们的使用需求,我们需要根据自己所需来设计自己的view,也就是继承View类。View的分类View 主要分为两类:类别解释特点单一视图即一个View,如TextView不包含子View...原创 2019-08-29 16:50:29 · 226 阅读 · 0 评论 -
从源分析Handler、MessageQueue、Looper
前言很长的一段时间我一直在使用Handler,主要是在处理异步任务的时候来实现线程切换,不过对其原理和工作流程并没有详细的做过了解,以下我把从分析源码得到一些内容做出了一些总结。从源分析Handler/MessageQueue/Looper的工作流程首先来看下如下的示意图,图中描述的对象之间的基本通信。首先是Handler对象发送了一条Message,然后消息会被存放到一个列表(队列:Me...原创 2019-08-28 19:46:20 · 105 阅读 · 0 评论