![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android笔记
文章平均质量分 50
夜尽天明89
Android开发工程师
展开
-
界面中局部(部分)区域嵌套滑动
界面中,部分区域(局部)可以滑动,滑动到一定程度后,该区域内的子布局可以继续滑动原创 2022-08-23 14:03:00 · 610 阅读 · 1 评论 -
Android权限相关(检查、申请、回调)
最近要整理个老项目,权限那块需要改,就回顾了下权限相关的,在此整理下。这里用到的是 permissionsdispatcher下面是简单的使用,详细的去看1、先检查下 build.gradle 中是否有apply plugin: "kotlin-kapt"这句话,没有的话再顶部加上;2、添加依赖implementation "org.permissionsdispatcher:permissionsdispatcher:4.5.0"kapt "org.permissionsdispatch原创 2022-02-14 10:28:37 · 2895 阅读 · 0 评论 -
自定义圆环(扇形)绘制
这个圆环是静态的,没有自动增加的动画绘制并不复杂,有些细节点容易搞错,这里写出来,算是做个笔记。先放出源码,细节点,后面会说明。建议看后面的说明。最后,会进行扩展,绘制扇形需求/功能说明:1、假设一个班级里有 X 个人,班级里的学习有的篮球、有的足球、有的书法、有的绘画,还有的,什么都没学2、圆环绘制的起点,是圆环顶部,逆时针依次绘制效果图:代码:import android.content.Contextimport android.graphics.Canvasimport an原创 2021-04-28 11:37:51 · 1576 阅读 · 0 评论 -
网络框架封装(retrofit2+rxjava2+okhttp3)
项目地址后面的 项目说明 ,请仔细看。如果自己的项目有需要扩展的,也好知道去哪里改写在前面:项目中隐去了所有接口、有效参数,如果要验证,请自己找合适的接口验证改封装支持的功能有:1、接口请求;2、addHeader相关;3、请求接口的参数获取(并排序),便于处理(如:加密,和后台校验)4、接口相关日志打印为了方便使用,直接写成 library ,复制拿走就行引用 library ,注意2个地方:1、app中的gradle,dependencies 中添加//netlib 是我网络封装的原创 2021-04-07 21:03:50 · 631 阅读 · 1 评论 -
handler笔记(sendXX、postXX、延迟处理)
关于handler的post、延迟消息这2个点有点忘记了。这两天重看了下handler源码,学习笔记总结下之前写过一篇,handler源码分析这里只说下架 post、延迟消息。测试代码很简单:(Kotlin) private var mHandler = object : Handler() { override fun handleMessage(msg: Message?) { super.handleMessage(msg)原创 2021-04-06 10:41:49 · 463 阅读 · 0 评论 -
基于属性动画,实现 咔嚓截屏(收藏)动画
写在前面:这里的截屏,其实不是真正意义上的截屏。而是把数据先设置到一些控件上,让控件做透明度、缩小、位移等动画。只是看起来像截屏。为了方便描述,下面还是采用截屏这种说法。需求:做一个咔嚓截屏收藏功能。点击“按钮”后,把屏幕截屏,然后把截下来的内容,做缩小、透明度、位移等动画,飞到按钮上。因为代码简单,就没放到GitHub上,直接全部放出来了。复制了就能用。代码中已经有一些注释了,但是有一些地方因为简单的文字描述不清除,需要在博客中详细说。先来2张简单的效果图注意最后的说明。注意最后的说明。原创 2021-02-01 21:16:07 · 500 阅读 · 2 评论 -
利用MediaPlayer实现在线音频的播放(支持进度条拖动、快进、快退)
效果图:GitHub地址https://github.com/chenjianqiang1016/MyAudioDemo写在前面:本项目的缺点是 没有对网络情况进行处理我找了一首4分40秒的歌曲(4.5M),打开界面后,大约停留1-2秒,就开始播放了,然后我中断网络,发现可以顺利播放到结尾。说明在网络良好的情况下,问题不大。当然,这是理想状态,如果开头网络不好、网卡、网慢、播放到中间断网了、断网后又重连了。。。这些情况,本项目都没做处理。如果是播放本地文件,网络情况就无所谓了说明:(代码中可能原创 2020-10-22 16:57:05 · 2504 阅读 · 0 评论 -
安卓加载展示PDF文件(腾讯X5内核(TbsReaderView)+PDFView)
最近项目要求加载、展示PDF文件,因为之前项目中已经有X5浏览器了,用X5内核加载PDF文件也简单,就很快写完。但是没想到,测试出来几个坑。这里总结整理下。PDFView 的GitHub 地址https://github.com/barteksc/AndroidPdfViewerX5内核(TbsReaderView)+PDFView 实现PDF的加载,已经成功,并应用到项目中了我的测试用PDF文件,找了3个:几百K、几兆、18M全部源代码我会放在后面(关于项目包名的,我都去掉了,复制的时候,用原创 2020-10-22 11:04:38 · 7871 阅读 · 6 评论 -
安卓 复制文字 及从 剪贴(切)板 获取内容
最近有个需求,进入某个界面后,要监听 剪贴(切)板 中是否有文字,有的话,拿到,分析是否是需要的,然后进行对应的处理。功能看着简单,但是 因为手机系统原因,踩了个坑,这里记录下。先来个复制文字功能代码,很简单,不多说了导包import android.content.ClipboardManager代码val clipboardManager =context.getSystemService(Context.CLIPBOARD_SERVICE) as? ClipboardManagerv原创 2020-09-09 14:35:58 · 1129 阅读 · 1 评论 -
GradientDrawable的使用,和简单源码分析
gradient:英 [ˈgreidjənt] 美 [ˈgredɪənt] 倾斜度,坡度,变化率从字面意思理解,是一个可以变化颜色、有渐变效果的DrawableGradientDrawable extends Drawable来个效果图和对应的代码。并不复杂对应代码(布局我就不写了,没有任何特别的) //圆角矩形。TextView rounded_rectangle.apply { var gradientDrawable: GradientDra原创 2020-07-27 18:25:05 · 607 阅读 · 0 评论 -
HashMap知识(源码)
hashMap普通功能使用并不复杂,如:(Kotlin写法)var hMap: HashMap<Int?, String> = hashMapOf()hMap.put(1, "a")//或 hMap[1] = "a"HashMap存储数据是非有序的,且是非线程安全的。如果需要线程安全,去看下ConcurrentHashMapHashMap的底层是 数组+链表+红黑树(JDK1.8 增加了红黑树部分)。HashMap增删改查等常规操作,都有不错的执行效率,是ArrayList和Link原创 2020-06-23 19:09:03 · 132 阅读 · 0 评论 -
Activity生命周期,学习笔记(踩过的坑)
关于Activity的生命周期问题,已经是很常见、很简单的问题了,但是偶尔还是会踩坑。这里,做个总结、笔记1、一个APP启动,启动后退到后台(home键),然后重新打开界面。这个过程是生命周期变化是什么?这个问题非常简单了APP启动onCreateonStartonResume退到后台onPauseonStop重新打开onRestartonStartonResume2、两个界面的跳转呢?第一个界面,跳转第二个界面startActivityForResult,然后关闭第二个原创 2020-06-17 16:24:17 · 199 阅读 · 0 评论 -
按下按钮后做扩大(扩散)动画
需求:1、录音按钮,按住后,做扩散动画,显示:录音中;2、默认状态,显示:按住录音;3、松手后,控件做反向收缩动画UI规定:1、默认,按钮有个背景色(纯色),尺寸为:116 * 40;2、按住后控件扩散,扩散过程中,出现一条描边,扩散到最远处,且,背景色变成透明;3、控件扩散后,最大尺寸为124 * 44;4、动效时长250毫秒;5、松手后,控件做收缩动画,效果与上面相反效果图示例(静态图):分析:1、尺寸分析:扩散前后对比:124/116= 1.0689… ;44/40 =原创 2020-06-13 11:22:29 · 1034 阅读 · 0 评论 -
ViewPager+Fragment,一屏展示多个Fragment,中间正常,两边漏一点
功能需求:1、有多个布局,要求滑动展示,中间大,两边小,两边小的布局,大部分在屏幕外,屏幕里面,漏出来一点,让用户知道可以滑动;2、这多个布局,内容有差异,甚至,可能有较大差异;3、在边缘处,也可以滑动。类似画廊效果,其实网上有对应的,但是,细节地方,有些博客写的不全,我刚开始写,对着一两个博客写,总是出现奇怪的问题,或者没有效果。对比了不同的博客,才出来效果。为此,我写个博客,干脆把所有...原创 2019-12-25 16:47:03 · 1603 阅读 · 0 评论 -
自定义滑动控件(SwitchView),同时解决和ScrollView的冲突
网上搜 滑动控件(SwitchView),很多。本来也没什么写的,但是根据新项目需求,和事件界面调试,还是发现了很多问题。把网上的项目改来改去,麻烦。就自己写了。简单的效果图根据本次实际功能和自己调试过程中发现的问题,针对 switchView,总结了以下需要具备的功能。1、可以滑动。以中心为界限,当滑过中点,就变换颜色。如:当前是开启状态,当小圆滑过中点,背景就变成关闭时候的颜色。抬起手...原创 2019-12-19 15:58:25 · 649 阅读 · 0 评论 -
简单的可滑动、点击的次数选择器(类似卡尺)
需求:1、样式类似下图2、可以滑动,滑动过程中,圆点顶部的数字随之变动;3、可点击,点击后,个数变动1。如:当前指示的数字为:2。点击2左边的区域,则指示数字变为1(即使点击了0的位置)4、次数为:0、1、2、3。其中,0表示关闭项目地址项目缺点:因为需求简单的原因,我这里只需要 0、1、2、3 这4个点。所以,在代码中,计算点的位置、计算 点上面要显示的文字 的算法,都很简单。没...原创 2019-12-17 20:22:37 · 581 阅读 · 0 评论 -
简单的侧滑抽屉效果
效果、需求描述:左侧有个目录一样的条目,默认看不到,右侧是宽度为全屏的主布局,通过滑动,或者点击按钮后,左侧出现,并且,主布局被往右顶。左侧的目录,不是覆盖(压住)主布局。项目地址默认情况:左侧出现后的情况说明:这里,我用了3个按钮(TextView),去做点击事件,是为了调试,按住按钮,滑动手指的时候,界面不滑动。第1个按钮,“切换1”,是最普通的状态。效果是,点击切换左侧的状态...原创 2019-12-02 15:47:27 · 310 阅读 · 0 评论 -
ScrollView中使用EditText,并解决滑动冲突
描述:在一个ScrollView中,有一个固定了高度的 EditText,EditText 可以输入很多文字,当文字过多时,需要滑动文字查看。此时,不能让 ScrollView 滑动。同理,当触摸到 EditText 以外的地方(ScrollView区域内)时,滑动界面的时候, EditText 内的文字,不能滑动。此外,如果EditText 中文字行数少,不用滑动,就可以看到全文的时候,在Ed...原创 2019-12-02 15:15:39 · 477 阅读 · 0 评论 -
标签控件(简单控件,笔记)
需求:根据给定的文字(代码中用户动态输入,或接口固定返回等),展示标签样式,且只展示第一个字。如:经济。则,标签展示“经”扩展功能:文字随控件大小,对应变化,不需要额外设置。样式图:代码:1、res -> values -> styles 中 <!--标签View的自定义属性--> <declare-styleable name="Label...原创 2019-11-28 15:26:17 · 860 阅读 · 0 评论 -
(仿微信读书)水平滑动RecycleView,上滑删除Item
直接放出项目地址项目地址功能需求:1、卡片水平滑动;2、一次只能滑动一页;3、上滑删除卡片项目额外具备功能:1、完整展示卡片居中,点击两侧卡片(漏出来一小部分),可以切换卡片,切换速度,可以自由控制。见:SmoothScrollLayoutManager (留意注释部分)2、上滑删除,可以自由控制滑动限制。滑动了多少距离,就触发删除。见:MyItemTouchHelperCa...原创 2019-11-05 16:00:01 · 500 阅读 · 0 评论 -
TextView及其内部文字宽高测量
请仔细阅读上图中的文字。或 查看原文测量中,有三种常见模式。1、EXACTLY当我们将控件的“layout_width”属性或者“layout_height”属性指定为具体数值时,比如“android:layout_width=“200dp””,或者指定为“match_parent”时,系统会使用这个模式。2、AT_MOST当控件的“layout_width”属性或者“layout_...原创 2019-10-31 11:27:11 · 3080 阅读 · 1 评论 -
句子中选取单词,并出现弹框
任务需求:1、给定一段英文,其中部分单词高亮,点击其中任一单词,视为选中(高亮词不可被选中)2、选中某个单词后,其附近出现弹框,箭头指向单词。默认在单词的上面。如果上面空间不足,就展示在单词的下面。其实,和现在很多学英语APP中的功能类似本项目,取词,是基于https://github.com/otwayz/Scallop是在它的基础上进行的修改、升级。好了,接下来,我讲解我写的这...原创 2019-10-26 14:24:23 · 373 阅读 · 0 评论 -
圆形ImageView
一般来说,圆形ImageView边缘都设置的比较明显,这里,以有边缘为例 1、创建属性文件:attrs.xml,创建路径为—— res/values/attrs.xml,内容如下:<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="CircleImageView">翻译 2016-02-03 09:49:29 · 410 阅读 · 0 评论 -
AndroidStudio-monkey测试
先确认Studio所使用的sdk中的adb所在路径。 我这里,studio使用的sdk中的adb路径是 然后,打开studio的Terminal,然后,通过“cd 路径” 的命令定位到该路径下,如图: 最后,输入命令:adb shell monkey -p xxx.xxx.xxx -v -v -v 5000 --ignore-crashes 10000000 > D:\monkey\l翻译 2016-02-03 10:10:51 · 866 阅读 · 0 评论 -
圆角矩形ImageView
圆角矩形ImageView翻译 2016-02-03 10:14:18 · 676 阅读 · 0 评论 -
EditText输入数据精确到小数点后n位
在设置金额输入框的时候,只需要数字,而且往往有精确度限制,这里默认精确度是小数点后面1位。翻译 2016-02-03 10:31:51 · 1589 阅读 · 0 评论 -
按钮的双击和三击
按钮的双击、三击、多击翻译 2016-02-03 11:14:34 · 1095 阅读 · 0 评论 -
得到一个字符串,超过N个汉字或者2*N个英文,之后显示...
将一个字符串截取前N位,之后显示省略号原创 2016-03-30 15:35:32 · 570 阅读 · 0 评论 -
局部字体变红
局部文字变色原创 2016-03-21 13:16:14 · 1617 阅读 · 0 评论 -
xUtils3的显示图片简介
xUtils3显示图片简介原创 2016-04-05 11:23:44 · 9961 阅读 · 2 评论 -
简单的饼状图
简单的饼状图原创 2016-04-05 18:02:58 · 615 阅读 · 0 评论 -
标签流布局
标签流布局原创 2016-04-06 14:57:27 · 539 阅读 · 0 评论 -
滚动选择器PickerView
滚动选择器PickerView转载 2016-04-06 17:32:05 · 1118 阅读 · 0 评论 -
Android监听是否点击了home键或者锁屏键
监听是否点击了home键或者锁屏键原创 2016-03-14 14:20:12 · 2002 阅读 · 0 评论 -
AndroidStudio常用设置
AndroidStudio常用快捷键原创 2016-03-25 10:20:26 · 615 阅读 · 0 评论 -
Android根据Url显示gif类型图片
Android根据Url显示gif图片原创 2016-03-25 17:04:25 · 3369 阅读 · 0 评论 -
微信支付,少1分钱bug
微信支付,传值少1分钱原创 2016-04-12 13:05:38 · 4527 阅读 · 2 评论 -
SpannableString使用注意(数据重复时,显示异常问题解决)
SpannableString的使用事项原创 2016-04-08 13:52:48 · 2388 阅读 · 0 评论 -
SpannableString的常用用法
SpannableString基本用法ClickableSpan、URLSpan、ImageSpan原创 2016-03-25 10:42:58 · 3114 阅读 · 1 评论 -
不让状态栏显示,常用于程序启动时展示欢迎页或者展示广告页
不让状态栏显示原创 2016-04-25 10:21:24 · 412 阅读 · 0 评论