- 博客(23)
- 收藏
- 关注
原创 数据抓取(四):获取手机通用信息
在应用中,我们有时候需要获取手机IP需要显示的语言环境,然后调整手机的语言,甚至有时候要获取移动数据的运营商和网络类型来判断是否提供服务等等,本篇文章就来带大家学习如何一步步抓取这些通用数据,当然最后还是有工具类提供给大家。其中有些数据因为安卓版本获取不全,这也是我想要完善的地方,后续会持续优化,如果大家有遇到问题也欢迎在github的issue或者评论区里提出。
2023-10-24 21:59:45
1207
原创 安卓:Splash screens——官方解决启动白屏的方法之一
安卓启动app会出现白屏现象,官方提供了Splash screens这个解决白屏问题的方法之一,最近学完顺便记录下笔记。本篇文章只是Splash screens的基础使用,虽然在练手项目用起来看着还不错,但是接下来可能会接着修改这篇文章,因为手头没有合适的icon,所以这是随便找的图片,而且也没试过添加动画来优化Splash screens。
2023-10-17 13:08:52
3566
2
原创 数据抓取(三):免权限获取所有安装的应用程序信息(系统和非系统)
在获取用户数据时,有时候我们需要获取用户的应用列表,比如在开发清理工具应用或者其他情况等时,那么我们完全可以利用PackageManager来获取应用列表。本次介绍了如何获取已经安装的应用列表获取,希望能够帮到大家,当然这不是最终版本,如果在之后有改进或者增加的部分,我会回来持续修改的,如果各位有什么建议或者问题,也欢迎在评论区提出。
2023-10-08 22:29:11
392
1
原创 数据抓取(二)&定位方案:地址信息的获取
在安卓应用的使用中,定位是一个不可或缺的功能,当然成熟的公司一般都是使用高德SDK这类成熟,经得起考验的轮子来开发。那我们这些没钱囊中羞涩,但是又想体验一把定位功能的友友们该怎么办,其实谷歌已经提供了一套成熟的api供我们使用。本文主要编写关于利用谷歌api获取经纬及详细地址的实现步骤,当然最后也会提供一份已经在使用的工具类给大家。
2023-09-17 14:46:39
513
2
原创 【数据抓取(一)】手机通讯录数据获取
很多app在使用的时候,因为要详细分析用户崩溃产生的原因,所以避免不了需要获取用户设备的详细信息,emmm,在信息时代里,数据就是这么的不值钱。我之前完成过这样的一个需求,接下来我会分多篇博客进行讲述内容,今天要讲的是如何抓取通讯录。
2023-09-01 19:07:05
765
1
原创 数据抓取:抓取手机设备各种数据
基于最近刚完结的外包项目功能——数据抓取,通过调用api和内容提供器来获取手机设备各种数据,诸如SMS短信数据、电量数据、手机应用数据等等,我尝试开发了一个开源库,希望能够帮助到大家来实现这个功能。当然目前该库目前抓取的数据还不到外包项目抓取数据的一半,只是因为最近有点忙,没时间完善所以才匆匆忙忙推出,相信等开学后就有时间完善,现在实习太累了。如果大家有疑问,可以在评论区提出,也可以在issue提出来,如果受到大家欢迎,我会持续完善此库。
2023-08-27 22:55:27
1520
3
原创 【自定义View】关于多色进度条GradientProgressView的绘制
我们常使用shape实现渐变色,但是shape的极限却只有三色,如果有超过三种颜色的View的要求,那么我们就不得不去自定义View来实现这个需求。不过它的难度也是很低的,实现起来很轻松。接下来我分析一下我的思路。还是因为时间问题,该自定义View只是单纯满足需求,并没有太大的扩展性功能,后续有时间我也行会出一篇后续将自定义View补上,实现一个功能性较为强大的渐变色进度条。自定义View的魅力就是当你实现功能需求的时候的满足感,不亚于以前做完一道数学大题。
2023-08-12 21:57:42
514
3
原创 【自定义View】实现柱状图方法(一)优化:根据雨量增缩雨柱长度
我们在之前,已经实现了雨量柱状图的部分需求,但是如果要凸显出柱状图的大中小雨量的话,该如何实现呢?我们只需要在自定义View里面根据雨量阙值(大中小)的点来缩短柱状图的长度即可,但这里有个点需要注意,即y轴的点都得进行偏移。大雨显示雨量柱状图中雨显示雨量柱状图小雨显示雨量柱状图我们在setData()方法增加参数最大值在私有方法setMaxCapacity()根据最大值设置阙值} }获取阙值,通过阙值获取需要偏移的距离(偏移举例默认为0)
2023-07-28 23:14:48
332
4
原创 【自定义View】实现柱状图方法(一)
通过自定义View实现柱状图的方法有很多种,因为最近在公司做需求用到了这部分知识,所以在这里用文章记录一下最简单的方法之一,我选择是去定义每个柱状条的View,然后通过RecyclerView的网格布局实现需求。主要属性有:初始颜色画笔,染色画笔,圆柱高,圆柱宽(宽度一般为柱体的原的直径),最大容量,真实容量等// 初始颜色 private Paint paint;// 定义颜色 private float height;
2023-07-26 22:59:43
521
2
原创 【View学习】BackgroundLibrary第三方库学习,节省shape、selector创建时间
安卓在实现多种多样的功能时,一个View的显示功能时不可或缺的,而我们常常耗费大量时间在创建shape、selector上,不妨来学习一下这个开源库BackgroundLibrary,让我们的开发事半功倍。当然最好的学习教程还是github作者提供的wiki和代码该库的使用其实不难,但是我个人只在实习的公司使用过,没有经常使用,所以是否会与其他属性冲突,或者有其他bug还不可知,但是其他的圆角,和描边、填充等基础属性是没问题的,公司中的项目已经用上该三方库了。
2023-07-23 15:21:18
766
1
原创 【自定义View】可拖拽的悬浮按钮
随着安卓技术的接触和深入,产品需求也越来越离谱,一个个优美的UI和高大上的功能,仅仅使用系统提供的控件是无法完成的,而自定义View就能够满足产品需求。近日,我便做到了一个需求,需要一个可以拖拽的悬浮按钮,那就拿出我三脚猫功夫的自定义View能力了。虽然这是一个小小功能,但足见自定义View技术在安卓里的重要性,我会在完善这个自定义View的基础下接着深入学习相关知识,希望大家一起加油。
2023-07-12 23:03:30
492
1
原创 Flutter学习之旅——(1)配置环境,新建第一个项目
在学习安卓之后,并完成一个上架app的项目后,很自然的将目光转向Flutter,在此记录Flutter的学习过程,不得不说,配置环境这一步痛苦至极,我这篇文章就尽量写一些我遇到的问题。
2023-05-03 16:42:48
723
原创 自定义View——带前缀的EditText
谷歌给我们提供了大量优美的控件,但在实际开发中,我们常常会遇到很多自带控件无法实现的功能,这个时候我们可以通过自定义View来实现需求。本文将自定义一个带前缀的EditText,并通过此控件实现漂亮的UI效果。首先继承EditText\TextInputEditText\AppCompatEditText(三者是继承关系)重写三个构造函数在styles自定义属性:前缀文字preText、前缀文字颜色pre_color、前缀文字大小pre_size在onMeasure()方法获取控件的宽高。
2023-03-20 23:00:35
580
14
原创 实现带动画的悬浮添加按钮
需求如下:我们可以通过语音输入、文字输入等方式创建文章,需要使用多个悬浮按钮供用户进行笔记文章。那么如何优雅实现多个悬浮按钮呢?我采取了多个悬浮按钮+属性动画的知识组合实现了该需求。当然其实有很多可用三方库已经实现了这个需求,主要是我上学期学习动画时很少动手敲代码,这段时间在复习的时候顺便实现了一下,等考完试有空也许会将以上内容自定义封装成控件,练习自定义View的部分知识。
2023-03-07 17:10:30
416
2
原创 安卓——仿饿了么点餐,两个RecyclerView联动效果(一:为rv添加头部)
本文为左右两个rv设置数据,同时添加给右边的Rv数据进行分组和添加每组头部。之后关于联动的代码逻辑和实现效果就在二为大家展现。
2023-03-01 13:24:20
856
9
原创 安卓——EditText的撤销与反撤销功能实现
在使用记事本等文本类app时,我们常常能看到编辑框的文本可以。那如何实现这样的功能呢?今天我会一步步讲明我实现此功能的步骤。当然文末会有完整代码和我放在JitPack的依赖库,大家如果比较匆忙的话,可以直接查看目录3和4,以下的实现步骤是我对该知识点的梳理和实现逻辑,大家可看可不看。
2023-02-13 20:38:19
851
1
原创 安卓爬坑记录—— Android Fragment already added
Navigation使用bug记录:可能会与其他框架冲突,在运行后便出现了爆红:**Fragment already added。*
2023-02-03 23:17:46
748
3
原创 安卓9.0后真机无法使用http协议
项目使用的api接口是使用http协议,与以前使用的https不同,经过查询才发现。在安卓9.0后,真机因为安全起见,不能使用http协议,以下为亲测有效的几个解决方案,在此记录。
2023-01-31 21:14:58
299
2
原创 MVVM组件——Navigation基础运用
在Fragment出现后,相比于Activity,我们更喜欢,也更熟练于使用Fragment来布置页面,这个时候用FragmentManager来管理、切换碎片就会稍显复杂。而在MVVM组件里就提供了一个特殊的组件供以切换Fragment。且看定义:Navigation 是用来管理 Fragment 的切换,并且可以通过可视化的方式,看见App的交互流程。
2023-01-30 22:04:38
700
原创 MVVM组件——Room基础运用
想必大家早用惯了SQLife这个嵌入性数据库,或是利用LitePal操作数据库。不过在我们学习MVVM时,一个更加新颖和便捷的组件进入了我们的视线——room,什么是room呢?room定义:流畅地访问 SQLite 数据库。在SQLite上提供了一个抽象层,以在利用SQLite的全部功能的同时允许更健壮的数据库访问。简言之就是能,没错,你没听错,就是自动生成,节省了我们大量开发时间。
2023-01-29 00:08:10
300
1
原创 EventsBus学习问题—— Subscriber class com.eventbustest.xxxActivity$2 and its super classes have ......
Subscriber class com.itaem.eventbustest.xxxActivity$2 and its super classes have no public methods with the @Subscribe annotation,即该类及其父类找不到注解方法,以下有4种解决方法。
2023-01-09 23:15:18
651
原创 ViewModel+LiveData实现网络请求列表数据
序言:在使用mvvm架构时,官方推荐我们将网络请求等数据处理都放到ViewModel中,更好实现数据处理和数据解耦。今天要讲的是如何通过ViewModel+LiveData实现网络请求,。原因即在我们控制器跑完调用viewModel的网络请求getXXX()方法的代码后,这个时候子线程才刚刚new出,方法返回的只是null,而不是我们想要网络数据。
2022-12-15 21:57:45
1718
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人