android
文章平均质量分 93
我住隔壁我姓王a
这个作者很懒,什么都没留下…
展开
-
ASM对匿名内部类、Lambda及方法引用的Hook研究
ASM对匿名内部类、Lambda及方法引用的Hook研究原创 2022-08-03 16:31:12 · 1107 阅读 · 1 评论 -
给SwipeRefreshLayout换个免费的皮肤
SwipeRefreshLayout是Androidx提供了提供的下拉刷新组件,具体如何使用就不说了,相信大家也都经常用。1,效果首先看一下SwipeRefreshLayout的默认效果:为了不耽误你的时间,先看一下最终效果:2,常用方法方法解释setColorSchemeResources(int…colorReslds)设置下拉进度条的颜色主题,参数可变,并且是资源id,最多设置四种不同的颜色。setProgressBackgroundSchemeResourc原创 2021-08-15 19:36:14 · 407 阅读 · 0 评论 -
很任性!我开发了一款自己用的天气预报app
天气预报可以说是我们日常必备的工具,尤其是在夏季多雨季节,天气预报App的使用也成了家常便饭。国内主流的手机系统都自带了天气预报App,但是很多界面比较丑,有些还强制要打开定位才能使用。再说一下那些三方的天气预报App,虽然界面比较美观,数据相对准确,但存在大量广告、资讯,严重影响使用体验。作为高级安卓代码搬运工的我,实在忍受不了这些,那咋办?自己开发一个吧。功能主要功能如下:城市定位,城市管理城市实时天气状况、温度、大气压、相对湿度、降水量、风力风速风向、能见度,AQI空气质量数据逐小时天原创 2021-08-15 19:34:25 · 467 阅读 · 0 评论 -
Android 修改Preferences样式
Android开发中难免会遇到参数配置的功能,此时可以通过普通的布局实现,不过android sdk中也为我们提供了Preferences,可以通过配置xml方式实现配置界面的效果。比如手机系统的设置应用就是使用的Preferences:如何使用Preferences这里就不说了,你可以新建Activity选择Settings Activity模板了解它的基本使用,模板默认的界面如下:可以看到,非常丑,这里就以修改icon和文字的间距为目标探究如何修改Preferences样式。1,查找源码以S原创 2021-04-20 14:59:19 · 2205 阅读 · 2 评论 -
Android 扫描蓝牙设备并获取设备类型
目前流行的蓝牙4.0标准包括传统的蓝牙(BT)和低功耗蓝牙模块(BLE)。这里扫描的是传统蓝牙模块,先给出扫描结果:一,扫描Android扫描蓝牙设备是通过BluetoothAdapter启动蓝牙搜索,然后通过广播接收扫描的结果,其主要代码如下:1,获取BluetoothAdapter可通过单例模式直接获取val btAdapt = BluetoothAdapter.getDefaultAdapter()2,开始扫描if (!btAdapt.isDiscovering) { it原创 2020-07-23 14:34:30 · 4987 阅读 · 1 评论 -
Android Studio4.0 Cannot open Local Terminal
android studio升级到4.0以后,terminal异常,无法输入命令了,如下图所示:摆渡一波,各种尝试无果,仔细看了下异常日志发现是杀毒杀毒软件的原因,于是把360强制关闭了,发现termianl正常了。wtf,记录一下,以防以后再出现忘记了。...原创 2020-06-09 20:00:28 · 1737 阅读 · 0 评论 -
Android开发必备神器-CrashCanary
Android开发必备神器-CrashCanary前言安卓开发中,你是否遇到过如下困扰:场景一开发好一个功能后提交给测试小姑娘,测试中说“app停止运行”,然后你拿着他的测试机连到自己电脑上,重复操作一下,看看log找崩溃的原因。如果是必现的bug还好,遇到偶现的bug的蛋疼了。场景二可能你的项目中接入了UncaughtExceptionHandler,崩溃日志会以文件的方式保存在sd卡,但是有的设备不支持直接查看这些文件,此时还得连上电脑找到这个文件。场景三可能你的项目中使用了三方统计原创 2020-06-09 16:48:27 · 383 阅读 · 0 评论 -
关于BottomNavigationView的使用姿势都在这里了
BottomNavigationView使用大全,以及其兄弟组件NavigationRailView的简单使用原创 2020-04-26 18:37:59 · 34926 阅读 · 31 评论 -
仿知乎列表广告栏:在RecyclerView中实现大图片完整展示的视差效果(优雅地插入全屏广告图)
仿知乎列表广告栏:在RecyclerView中实现大图片完整展示的视差效果(优雅地插入全屏广告图)github地址:https://github.com/giswangsj/RvParallaxImageView一,前言在xx地铁app(可在地铁上提供wifi)上看到过类似如下的效果: 在recyclerview中,某一个item位置显示广告图片,广告图是可以填充屏幕的大图,recy...原创 2020-04-10 18:37:33 · 6326 阅读 · 8 评论 -
史上最好用的Android音视频播放器-ExoPlayer的使用及自定义UI
ExoPlayer是运行在YouTube app Android版本上的视频播放器。不仅功能强大,而且使用简单,可定制性强。ExoPlayer也是Google官方推荐的Android媒体播放器,可以在Android官方文档的音频和视频目录中找到。一,优点和缺点 优点: 1,支持DASH和SmoothStreaming这两种数据格式的资源,而Media......原创 2019-10-21 09:44:14 · 41745 阅读 · 17 评论 -
android仿支付宝蚂蚁森林加载动画效果的两种方法
一图胜千言偷过别人能量的小伙伴都熟悉这个加载效果,下面就讲解一下实现过程。1,自定义view2,这里要用到蚂蚁森林的图标,如图通过canvas.drawBitmap()画出图片。3,通过PorterDuff.Mode.SRC_IN,给图片填充想要的颜色。4,通过ValueAnimator实现往复动画。下面从第二步开始讲解。有两种方式可以实现上图效果,如下:一...原创 2018-09-28 19:58:25 · 4522 阅读 · 0 评论 -
Android Jetpack--Room使用入门
Room是谷歌官方推出的数据库框架,是替代GreenDao的终极杀手。工欲善其事,必先利其器使用room首先需要添加配置1,使用插件在app的gradle中添加apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'apply plugin: 'kotlin-kapt'2,添加依赖...原创 2019-07-30 11:25:35 · 1511 阅读 · 0 评论 -
android 微信支付成功后是如何跳转到WXPayEntryActivity的
做过微信支付的都知道,集成微信支付时必须在我们的包名下创建wxapi文件夹里面有一个WXPayEntryActivity。为什么要这样做呢?支付成功后再微信中“返回商家”又是如何跳转到WXPayEntryActivity呢?我们的程序启动了微信,微信把结果又返回给了我们的app,这就用到了进程间通信。进程间通信(IPC)这个大家应该不陌生,大体分为六种:Bundle/Intent传...原创 2018-08-13 15:43:58 · 3567 阅读 · 0 评论 -
Android TextView文字镂空效果的两种实现
一图胜千言文字镂空效果主要有两种实现方式:1,自动义View,在canvas中绘制圆角矩形作为背景,然后绘制文字,通过PorterDuff.Mode.DST_OUT把背景擦除,实现镂空效果。如上图中的第一个。2,自定义TextView,定义两Bitmap,分别在Bitmap上画背景和文字前景,然后通过PorterDuff.Mode.DST_OUT,把背景擦除,实现镂空效果。如上图中...原创 2018-10-08 20:00:08 · 9509 阅读 · 0 评论 -
Android 启动白屏,跳转黑屏以及冷启动优化
一,白屏现象:启动app,白屏一段时间后才出现欢迎页解决:1,添加style<style name="AppTheme.Launcher"> <item name="android:windowDisablePreview">true</item></style>或者<style name="Ap原创 2018-10-08 19:16:52 · 1180 阅读 · 0 评论 -
Android Studio升级到3.2后部分第三方库引入报红
Android Studio升级到3.2后引入的第三方库会出现报红的现象,如图:虽然不影响编译,但是这样总归是不爽,原因:原因是我们的build.gradle中的dependencies--classpath版本太低如:classpath 'com.android.tools.build:gradle:2.3.2' 解决:改为3.1.2即可,如:classpath 'c...原创 2018-12-04 13:00:01 · 1628 阅读 · 0 评论 -
Android面向切面编程(AOP)之AspectJ使用
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程。可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。 AspectJ是AOP编程思想的一个实践,...原创 2019-07-10 19:51:50 · 912 阅读 · 0 评论 -
Android Jetpack--Room之Dao详解
这里只对Dao的使用做详细介绍,Room的具体用法请参看:https://blog.csdn.net/BigBoySunshine/article/details/977639921、Insert(添加) 当你创建DAO方法并添加@Insert注解时,Room会生成一个具体的实现方法,在一个独立的事务中往数据库插入所有的参数。@Daointerface M...原创 2019-07-30 11:43:43 · 2631 阅读 · 0 评论 -
Android Touch事件传递机制
Android Touch事件的传递机制转载 2016-12-07 13:11:06 · 315 阅读 · 0 评论 -
Android 9 Pie新动态
经过一年多的开发和早期采用者的数月测试,我们已准备好向全世界推出Android 9 Pie,这是Android的最新版本。Android 9利用机器学习的强大功能,使您的手机更智能,更简单,并为您量身定制。阅读所有关于新的消费特点在这里。对于开发人员而言,Android 9包含许多新方法来增强您的应用程序并构建新体验以促进参与。您已经给了我们大量的反馈 - 超过一千个错误和功能请求 - 谢...翻译 2018-08-09 18:50:12 · 1061 阅读 · 0 评论 -
koin - kotlin依赖注入框架
什么是koin?koin 是一个用于kotlin的实用型轻量级依赖注入框架,采用纯kotlin编写而成,仅使用功能解析,无代理、无代码生成、无反射。koin 是一个DSL,一个轻便的容易和一个使用的API。用法 1,添加依赖// Add Jcenter to your repositories if neededrepositories { jcenter() ...原创 2018-07-20 23:26:42 · 4120 阅读 · 0 评论 -
Android Studio 中 An error occurred while creating the AVD.See idea.log for detail
Ubuntu环境下,在Android Studio中创建模拟器时出现“An error occurred while creating the AVD.See idea.log for detail”错误这是因为少了一个库,只需要打开终端:sudo apt-get install lib32stdc++6...原创 2017-05-03 19:38:46 · 9317 阅读 · 3 评论 -
Android SurfaceView实现画心
谁说程序员不会浪漫,浪漫是跟人有关的,程序员也是可以很浪漫的,今天就用Android 的SurfaceView 实现画心功能。SurfaceView的用法有基础的应该知道,这里不多做介绍,大体流程:继承SurfaceView并实现SurfaceHolder.Callback接口 ----> SurfaceView.getHolder()获得SurfaceHolder对象 ---->Surfac原创 2016-12-27 20:33:04 · 2122 阅读 · 0 评论 -
JKS转PEM,JKS转BKS
最近做一个及时通讯系统,服务端用Python3 Socket实现,客户端包括Android和桌面版,功能都实现了以后考虑到加密问题.python3 Socket要用pem证书,Android javawebSocket要用bks证书,WTF!Android的bks是由jks转的,上网查了一下,jks可以转成pem,这就好办了一,生成JKSkeytool-genkey -keya原创 2017-01-06 10:12:52 · 7683 阅读 · 0 评论 -
Android Studio R文件找不到,Execution failed for task':app:mergeDebugResources'
Execution failed for task':app:mergeDebugResources'原创 2016-12-25 13:16:38 · 558 阅读 · 0 评论 -
Android Studio 中Conflict with dependency 'com.google.code.findbugs:jsr305'
工程中遇到这种问题:Conflict with dependency 'com.google.code.findbugs:jsr305'Error:Conflict with dependency 'com.google.code.findbugs:jsr305'. Resolved versions for app (1.3.9) and test app (2.0.1) differ.原创 2016-12-17 12:44:45 · 2202 阅读 · 0 评论 -
Android加载图片 Universal-Image-Loader图片缓存问题
开发中大部分情况下我们需要缓存图片,用imageLoader两步实现加载网络图片后,缓存到内存以及sd卡.再次读取该图片时先从内存找,有则直接加载,没有则从sd卡找,再没有则读网络,这样实现了三级缓存.原创 2016-12-06 15:49:44 · 3053 阅读 · 0 评论 -
React Native布局实践:开发京东客户端首页遇到的坑
React Native布局实践:开发京东客户端首页遇到的坑原创 2016-12-11 11:21:17 · 667 阅读 · 0 评论 -
Android App游戏去广告
去除简单的游戏中的广告原创 2016-12-11 10:52:39 · 2847 阅读 · 0 评论 -
SpannableStringBuilder连续调用setSpan时参数Object what不能使用同一个引用
SpannableStringBuilder连续调用setSpan时参数Object what不能使用同一个引用原创 2015-09-24 09:11:03 · 2803 阅读 · 1 评论 -
Android自定义ListView图片从服务端获取
实现了Android自定义ListView,ListView中的图片从服务端获取原创 2015-06-21 17:45:03 · 671 阅读 · 0 评论 -
Android可平移缩放旋转的ImageView的实现
本文是在别人做的ImageView实现缩放,平移功能的基础上做了优化并加上了旋转功能. 一,缩放 缩放通过双击屏幕和双指移动实现. 1,双击缩放 通过GestureDetector获取双击事件mGestureDetector = new GestureDetector(context,new GestureDetector.SimpleOnGestureLis原创 2017-10-17 00:20:01 · 1502 阅读 · 0 评论 -
Android Studio3中文输入法卡顿,不显示问题
Android Studio3经过了十几个版本预览版后终于出炉了。然而在3.0从预览版到正式版都存在一个问题,就是输入法中文卡顿,有时就直接不显示输入法。经过一番尝试后终于找到了最终解决方法。问题就在于android-studio安装目录中的jre,把jre文件夹换成android studio2X目录中的jre即可。原创 2017-11-03 10:28:14 · 2799 阅读 · 1 评论 -
Android Studio updating indices 一直闪烁
最近更新了Android Studio后就出现了“updating indices”并且窗口一直闪烁 解决方法: 1,Menu-File-Invalidate Cache/Restart 2 , 弹出dialog选择Invalidate and Restart如图 3,studio会重启,然后就ok了...原创 2018-05-23 17:28:51 · 7673 阅读 · 6 评论 -
Android P 新特性抢先看
上周的世界移动通信大会上,我们看到了安卓开发者,设备生产者和芯片合作者组成的安卓生态系统不断的给用户代码惊喜的体验。 新特性下面就来看看Android P第一个预览版的一些很酷的特性。 1,Wi-Fi室内定位 精确的室内定位一直以来都是一个挑战,它给lbs创造了新的机遇。Android P 支持了IEEE 802.11mc Wi-Fi协议,...翻译 2018-03-12 11:26:09 · 633 阅读 · 0 评论 -
GreenDao3.2使用入门
添加依赖 1,首先在根目录的build.gradle中添加buildscript { repositories { google() jcenter() mavenCentral() // add repository } dependencies { classpath 'com.an...原创 2018-02-28 17:22:14 · 390 阅读 · 0 评论 -
连续共享元素的过渡效果:从RecyclerView 到 ViewPager
过渡效果在Material Design app中提供体觉上的连续。用户操作app的同时,app中views的状态改变。动画和过渡强化了界面是真实的,连接着普通的元素从一个view到另外一个view。 本文旨在提供一个安卓fragment之间的特殊的连续过渡的方案和实现。我们会展示如何实现一个RecyclerView中的图片到ViewPager中的图片的过渡并且返回,用“...翻译 2018-02-26 21:13:45 · 3569 阅读 · 6 评论 -
修改kotlin默认方法体模板彻底摆脱kotlin.NotImplementedError
初学kotlin难免会遇到kotlin.NotImplementedError这个异常,原因很简单就是override了一个方法,但没有去实现,比如override fun getItemCount(): Int { TODO("not implemented") //To change body of created functions use File | ...原创 2018-02-11 11:15:31 · 1167 阅读 · 0 评论 -
解决kotlin.KotlinNullPointerException以及问题分析
学习Kotlin过程中难免会遇到kotlin.KotlinNullPointerException这个问题, 尼玛,kotLin不是传说中的空值安全吗?怎么会出现空指针异常。好吧,我不是来吐槽的。 这个异常的原因是定义变量或调用变量时使用了!!比如 var mainHandeler: Handler = null !!...原创 2018-02-09 15:43:24 · 19580 阅读 · 0 评论 -
史上最好用的Android省市区选择,三级联动
Android省市区选择三级联动效果,一个不大不小的功能,就算你做过,但是没有相关的代码直接写,也要花掉你至少半天时间。下面我写出我的实现过程(思路绝对清晰)。先上效果图一,准备数据我是用的本地的json数据(走网络的话太慢,每次都要请求),放在asserts中。格式如下:[{ "name": "河北省", "city": [ {原创 2018-01-09 21:06:43 · 6939 阅读 · 0 评论