- 博客(56)
- 资源 (4)
- 收藏
- 关注
原创 Android 圆盘颜色选择器,十六进制色值表,百分比透明效果值,渐变效果
一文顶四文,包含色值选择器,十六进制色值对应表,透明度表,渐变背景
2022-05-06 13:19:44
1178
1
原创 安卓看娘版
以前写过这样的文章-跳转查看,最近闲来无聊想回顾一下,发现居然没看懂…这是万万不可的,写博客的初衷都没到达,自己都看不懂,更别说分享给别人了,所以又重新写了一份,希望某日之后回顾的时候能够轻松想起此时的思路。首先通过此文章你可以了解到:1.原生与H5交互2.如何通过WebView将网页引入到APP中3.一像素保活法具体实战为了充分去体会到原生与H5的交互过程,这里写了一个切换效果上一个,下一个,展示属于原生范围,整体界面和切换背景是H5部分,点击展示之后返回手机原页面,并且手机能够正常使用(类
2022-05-05 10:53:05
1185
原创 Android中的自定义路由
前言:这篇文章介绍的是 - 初级路由,不是ARouter!, 建议在单独组件中使用,当然如果你想跨组件使用也是可以的,前提是该组件有正确的引用关系,比如两个组件间的界面跳转,组件A跳到组件B的时候A内需要有B的引用,ARouter可以实现不同组件之间没有引用关系可以进行跳转,是因为在编译的时候通过APT把相关数据已经单独拿出来了,使用时通过反射的原理拿到相关的数据,就可以进行操作了。如果你想跨组件使用,建议还是使用ARouter。为什么如何写路由之前,还是要先说一下为什么要使用路由,使用路由的优势以
2022-04-24 17:56:17
1715
1
原创 Java输入一个三位正整数(100~999),输出其对应的汉字,例如678输出六百七十八 (两种解法)
public class MyClass { public static void main(String[] args) { getString(678); } private static void getString(int i){ if (i > 999 || i< 100){ System.out.println("请输入100~999的正整数"); return;
2022-04-20 17:05:55
1046
原创 OKHTTP添加拦截器和缓存
拦截器分为:应用拦截器(addInterceptor)主要用于查看请求信息及返回信息,如链接地址、头信息、参数信息等网络拦截器(addNetworkInterceptor)可以添加、删除或替换请求头信息,还可以改变的请求携带的实体缓存如字面意思,就是缓存… 有了缓存,你的APP在没有网络的情况下也能正常展示以前缓存过的数据,如果这些数据不需要长期更变,使用缓存可以提高效率,减少与服务器交互产生的流量。问答小剧场:问:我添加了缓存,为什么没有网的时候不能读取缓存呢,还是提示网络问题答:缓存需
2022-04-18 14:45:53
2905
原创 Android监听前后台切换进行弹窗、双击退出程序、获取所有Activity
前一阵想要给APP做一个进入后台时弹窗的效果,使用的是对基类base的生命周期进行监听,过程有点差强人意,因此今天单独写一个对APP切换到后台以及切换到前台的依赖(AppFrontBackHelper),以便以后使用到的话直接引用就行,此外还添加了双击退出APP和获取创建所有APP的功能。先看一下效果:使用方法:allprojects { repositories { ... maven { url 'https://jitpack.io' } } }implementa
2022-04-11 15:38:56
2648
原创 Android中的枚举
在ARouter源码中发现使用到了枚举,说明枚举并不是不常见的,刚好枚举在我的视野中处于盲区,于是打算周末加班给拿下,扩展视野。了解枚举之前首先说一下什么是常量和变量:常量 - 声明后无法改变的量变量 - 声明赋值后可以改变的量枚举为常量,我们平时使用常量的地方都可以用枚举来代替!可怕吗,敲了这么多代码,我竟然连这点常识都不知道!因为我只在书本中了解过,并没有真正应用过。既然可以用枚举去代替我们平时的常量肯定是有原因的(不要为了用而用,根据具体需求,具体玩耍),为什么呢?相比我们平时用到的方式
2022-04-09 15:01:44
3993
原创 由ARouter引发的思考,到底什么是组件化和模块化?
这篇文章可能会饱受争议,大佬们可能会有不同的见解,以下内容仅个人观点,如果不妥请及时指出。起因是最近想温习一下Arouter,只看不写,早晚荒废,于是开始写了一个demo,不写不要紧,一写就暴露了很多问题。说到Arouter,肯定就是跨模块跳转,既然如此就建立两个模块呗,让这两个模块之间的界面进行跳转,这么简单的demo不一会就完成了吗由app模块跳转到 im模块,写好之后发现报 There is no route match the path 的错误,没有找到匹配路径。这里先整理出为了解决这个问
2022-04-01 14:32:49
1905
原创 APP国际化、动态设置控件颜色(APP个性化)
亲身体验:某些时候QQ音乐首页整体都成灰色,艾玛,BUG!!!,截图反馈。只有首页,其他的界面没问题,好家伙,故意的!确实,今天咱也来搞一下,这篇文章主要记录项目 1. 国际化 2. 动态设置控件颜色(APP内深色等其他颜色功能) 3. APP界面灰色 的代码层面和浅层解释1.国际化这里所说的国际化是指APP可以在中文和其他文字之间的切换,界面样式是一样的,只是里面的文字改变,当然这是一种节约成本的做法,正常情况下一个中文版,一个英文版才对,因为国内外APP的某些使用习惯是有区别的。创建
2022-03-30 15:41:10
2052
原创 网络请求框架Retrofit基本使用(Kotlin)
前几天了介绍了Kotlin的基本使用和基类封装、MVVM和DataBindingLiveData二次封装、Kotlin中使用简单Android项目以依赖的形式使用小狗蛋:以上基本就能实现一个完整的项目了慕容海柱:感觉少点啥小狗蛋:还少啥,够用了慕容海柱:那你网络请求用啥?OKHTTP吗?感觉不搭啊小狗蛋:行叭,那咱用Retrofit慕容海柱:咋用?小狗蛋:走着首先导入依赖,如何自己写一个依赖看上面有请求也把解析搞里头! implementation 'com.squareup
2022-03-29 13:07:19
2629
原创 Android项目以依赖的形式使用
相信大家都使用过依赖的形式给项目添加功能代码,别的不说,灵活性高是肯定的,有没有想过将自己的项目或者某个功能也以依赖的形式导入到项目中呢,这样就不用每次写新项目或者其他的地方使用到的时候去复制粘贴了,一句代码搞定,而且别人也可以共享你的成果,奥里给首先要知道一点!!!将项目上传到JitPack作为依赖使用的时候,你的项目一定是可以正常运行不报错的,否则JitPack不会通过上传的第一次接触依赖的时候以为是某个单独的功能或者代码,其实不然,这个依赖是一个完整可运行项目的一个组件,我们相当于通过网络的形式
2022-03-28 17:54:52
914
原创 LiveData二次封装、Kotlin中使用简单
说到LiveData不得不提一下 Kotlin和 MVVM,为什么不得不提一下呢,有没有发现,两者只要说起其中一者就会不自觉想起另一者?因为 MVVM 为 Kotlin 而生,MVVM有JetPack加持,LiveData为JetPack中的一枚大将。就好像狗熊岭的翠花和熊二在和光头强玩斗地主,你会问熊大去哪了。说到LiveData,第一想到的就是:内部已经实现观察者模式,能够感知生命周期、 在组件激活的时候才会回调相应的方法,从而刷新相应的UI、不用担心内存泄漏,可以感知组件的生命周期、 当confi
2022-03-25 15:52:55
1816
原创 Kotlin的基本使用和基类封装、MVVM和DataBinding
犹豫要不要写这篇关于Kotlin的文章很久了,网上大把大把的Kotlin的项目和各种知识点与代码,到目前为止已经半年多没接触Kotlin项目了,重新捡起来,就当是熟悉一下基本写法吧,以文章的形式去整理并加深一下印象,同时可以帮助一下正在初学Kotlin的同学。这篇文章你可以了解到1.Kotlin基本使用2.Kotlin项目基类搭建封装3.MVVM框架实战使用4.DataBinding数据绑定实战首先讲一下MVVM是很有必要的,因为一开始我接触到Kotlin就是与MVVM配合使用的,如果你和我说用
2022-03-25 14:54:51
2824
原创 进程与线程的基本理解
首先要明白两者都是抽象的概念系统如车站,进程如火车,线程如车厢车站通过火车对物资乘客进行管理 (进程的概念)火车由火车头(控制块),火车系统(程序),乘客和物资(数据资源)组成 (物理层面)火车能动(动态),不同的火车不影响的开动(并发),不同的火车在自己的轨道互不影响(独立),假如晚点整条车道上都晚点(制约) (进程特点)火车由创造(创建) - 站台等车(就绪) - 发车(运行) - 堵车(阻塞) - 到站停车(结束) (进程有几种状态)火车由一节节车厢(线程)组成 (抽象层面
2022-03-24 17:40:57
60
原创 倒计时、定时器的五种方式,有这篇就够了
倒计时、定时器的使用次数也不少,这篇文章做一个总结,不用每次需要的时候到处去百度了,本文章内的代码都经过本人亲测有效!方式一:new Handler().postDelayed(new Runnable() { @Override public void run() { //十秒之后在这进行操作 } },10000);方式二://别忘了 onDestroy() 内进行销毁,防止内
2022-03-24 14:45:59
1132
1
原创 手机浏览器 打开 APP,APP 嵌套在了浏览器里,网页跳转app问题
从网页点击某个按钮跳转到APP之后,正常使用,可是当你打开手机后台应用时却发现APP竟然在浏览器里,我擦,这怎么能行呢!,其实用户用起来也没啥感觉,就是在APP中使用的,只不过两者合体了,这样如果你想杀死浏览器或者APP时就尴尬了,体验不太好,
2022-03-15 18:03:41
4767
原创 Android 界面优化,APP性能优化,APK包压缩,如何减少安装包体积
关于APP性能优化的文章比比皆是,但是大多都是规规整整的用专业术语去描述,去介绍各种情况,反正我是记不住,不忘初心,这篇文章就用我自己在实战过程中如何去优化做一个记录
2022-03-11 14:12:59
1555
原创 LeakCanary的基本使用
如果遇到内存泄漏并且不知道如何去排查怎么办呢? 没错他来了,亲测能用!首先: debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3'其次: 跑项目,看日志LeakCanary这样就可以使用 LeakCanary 了 ,如果漏了,你就会发现手机系统通知栏有消息哦,点进去就会有相关的泄漏消息,根据消息去处理问题吧!非常实惠!...
2022-03-11 14:11:51
354
原创 RecyclerView 自动滑动效果,点击条目后自动滑动
需求:为了让用户有更佳的体验,RecyclerView 点击后,假如后面还有数据要自动滑动一下,让用户知道这个是可以滑动滴,而且还是有数据滴解决:横竖效果通用,该方法 i 参数为当前点击的条目的下标,size为RecyclerView的数据长度, 该方法 比较友好的滑动 smoothScrollToPosition(),滑动到的位置是刚显示的位置,所以这里多添加了两条数据,具体多显示第几条根据需求随便改就行。。 //自动滑动效果,告知用户还能滑动和其他控件 int mFirstVisi
2022-01-19 18:27:11
1945
原创 开启混淆后,Android 生产包( Release包 )报错,测试包没问题,Rebuild 的也没问题,项目也能正常跑
如果遇到相同的报错信息,那么恭喜你,来对地方了,经过很长时间的挣扎,终于解决了此问题,目前未发现异常情况解决方案,测试包正常,生产包异常,多半是混淆问题,不过还是要具体问题具体分析:proguard 内添加 -dontoptimize...
2022-01-12 16:48:44
2017
原创 Android 如何动态给一个数据添加符号或者标识符等
这一类问题以前也发过文章 -> 传送门,只不过场景不一样,这次又通过骚操作来完成效果,这里记录一下,希望能够帮助需要的小伙伴需求:后台数据返回一组数据,根据需求去对这些数据进行动态修改此文章的需求:涨跌幅,跌时后台返回 - xx.xx%,涨时后台返回 xx.xx%,要求涨时效果 +xx.xx%,此时的数据是 String 类型,并且不能转为 数字类型去判断,可以通过以下骚操作完成效果:private String setIcon(String s){ //由于目前后端只在跌时
2022-01-11 21:00:01
915
原创 Android WebView界面点击无反应,WebView点击之后界面异常或者自动滑动置顶
最近遇到一个奇葩问题,RecyclerView 嵌套的 WebView ,点击 WebView 容器后,界面自动滑到顶部,该滑动不是web界面滑动,RecyclerView滑动刚开始想到的就是焦点问题,滑动冲突,RecyclerView 设置滑动item操作,获取通过接口调用等方式,分别进行调试之后都没发现问题,其实能发生这种现象的大概率也就是以上问题,经调试,点击其他部分没有问题,也没有后端或者h5端调用相应的方法,只点击web容器才会发生以上现象,所以更加确定是焦点问题,刚开始只在RecyclerV
2021-11-30 19:44:47
2192
原创 Android 如何区分相同参数,相同数据类型,不同场景相同数据的小技巧,万能适用
场景:需要用到某个数据或者参数的时候他们的类型一样,但是需要在不同场景或者条件下使用,很难判断,或者同一个数据或者数据类型(比如key),但是携带数据不一致,那怎么区分呢解决:个人做法,亲测有效,可以在该数据添加标识符,用于区分,前提是不影响该数据的类型或者用意,实例: 我需要一个日期类型的key,后面携带的value不同,需要用到的场景也不同,这时候或许有人就说了,直接判断key不就行了吗,但是这个key的数据是动态添加的不能直接写死的,这时候通过添加标识就可以了,比如myMap.put(dat
2021-11-20 11:54:34
1529
原创 Android TextView 字体 加粗以及判断是否加粗
设置TextView 加粗方法以及获取该TextView是否加粗状态的方式(tv代表TextView):设置加粗 – tv.getPaint().setFakeBoldText(true);获取是否加粗 – tv.getPaint().isFakeBoldText()设置加粗 – tv.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));获取是否加粗 – tv.getTypeface().getStyle() == Typeface
2021-11-10 23:12:34
4440
原创 Flutter 环境配置-AndroidStudio篇,以及遇到的问题
今天开始入手Flutter了,本来想着先把Android搞好,在慢慢入手Flutter,可是Flutter的文章越来越多,好奇的点进去看也看的迷迷糊糊,终于没有经住诱惑下手了,Android原生虽然有性能方面的特点,但是慢慢的有很多语言去对它进行入侵了,虽然说下手还是晚些,但是只要肯学,慢慢都能追上!这篇文章我打算以最简洁明了的方式去介绍一下我今天搭建已经开发遇到的问题搭建环境AndroidStudio 中去下载插件然后去官网下载 Flutter的SDK,就是一个压缩包,建一个文件夹解压就行
2021-09-17 19:16:10
102
原创 Android进度条,自定义进度条,显示百分比
昨天搞了一个圆形加载框 传送门,睡了一晚重温一下,今天搞一个条形加载框巩固一下,比圆形要简单点,两个矩形即可,一个总的,一个加载进度的,然后添加一个文字在后面,先上图,后上代码,讲解在注释里直观又方便
2021-09-17 11:17:00
289
原创 Android圆形进度条,显示百分比
自定义View在我心中一直属于比较难的范围,但是别人能写为什么我写不出来呢,所以静下心来,根据网上参考,自己写了一个比较普遍的圆环百分数的View,经分析(本Demo)主要核心就一个线程,定时刷新界面,达到动态显示的效果,精华都在注释中,先上图,在上源码,希望能够及时帮我指出错误,共同学习!public class StartYuanView extends View { private Paint paint; //画笔 private int max=100;//最大进度
2021-09-16 18:15:22
622
2
原创 Fragment显示异常,切换Fragment白屏,切换Fragment之后出现问题
相邻的两个或者三个或者N个Fragment之间来回切换没有问题,但是超过某个数量之后切换Fragment出现异常;
2021-09-14 17:47:40
1211
原创 获取Android控件
注解:View - 控件类型viewName - 控件名称viewId - 控件idviewType - 控件类型(比如 id 、layout 、drawable)View viewName = findViewById( R.id.viewId )@BindView ( R.id.viewId )View viewNameint viewId = getResources( ).getIdentifier( " viewId " , " vie
2021-08-26 17:56:49
1147
原创 BaseBinderAdapter 的使用方法
随着app界面日益完善,普通的布局构建方式已经无法满足开发者追求高效编写代码的需求,于是 BaseBinderAdapter 诞生了,它继承于BaseQuickAdapter。先看一下效果:接下来就讲解一下 使用步骤,使用Kotlin+MVC来进行演示。(注:这里使用 MVVM使用效果更佳)BaseBinderAdapter是一个三方的适配器,所以导入依赖之后就可以在相应的模块下直接引用了,具体使用方法如下:首先要创建需要用到的布局样式,这里只写一种其他样式写法大体相同,首先 编写需要的条
2021-08-24 14:55:47
650
原创 ARouter::There is no route match the path
今天ARouter 把俺虐哭了,各种懵逼在头顶转圈圈,趁热打铁,来写一下 如何解决ARouter::There is no route match the path这篇文章我通过自己的总结与反思,统计出以下几种情况你不是组件化或者模块式使用,仅仅是在 app 或者单独一个模块下使用组件化模块化使用你是通过 Java语言来使用你是通过 Kotlin语言来使用以上四种情况可自由搭配 哈哈如果你是java语言写的网上基本都是,如果你是用Kotlin语言写的,去网上搜索Kotlin语言使用ARo
2021-07-14 21:29:43
167
原创 Unresolved reference: databinding 模块化,组件化报错
不要只在 总的 libaray 中添加dataBinding { enabled = true }在每一个需要用到 DataBinding 的模块下的 Gradle 内都添加 以上语句 问题解决亲测有效 - 如无效果,请百度别的方法
2021-07-13 19:44:20
863
原创 Android国际化切换语言之后,首次进入界面无效果
最近遇到一个问题,在这里记录一下:就是开发中需要切换语言时,切换之后也就是更换 String文件,需要重新加载页面才可以实现效果,即 fininsh() - Intent()本界面即可,这是最简单的,当然还有无需重新加载界面等方法,自行百度即可以下才是本文章的精华。。。当需要记录用户选择了什么语言,方便用户下次进入应用无需重新切换,直接使用以前选的语言时,通过 SharedPreferences 存储即可, 这时,当你进入应用发现,每次进入应用时,他都会按照手机系统设置的语言去显示,而不是
2021-07-10 22:01:40
398
2
原创 Html-网页调用摄像头并拍照效果
给大家分享一个web端,网页调取摄像头并拍照保存照片的代码,感觉挺有意思的,代码是我面向百度编程找到的。。。。以下是效果图,主要就是用到了强大的JS代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <me
2021-06-28 22:18:53
4972
4
1C币下载!Android蓝牙配对,开启关闭蓝牙,搜索附近蓝牙设备
2022-03-23
Android折线图,柱状图,仿股票基金走势图
2022-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人