
Android
文章平均质量分 93
ZXYERA
人生如逆旅,我亦是行人。每一步都值得我们珍惜,每一次经历都是成长的宝贵财富。
展开
-
谈谈Android源码——IntentService
IntentService 介绍IntentService 继承自 Service,所以它是一个 Service,并且它是一个抽象类,所以使用它必须要使用它的子类。按照国际惯例,先来看看 IntentService 源码中的注释/** * IntentService is a base class for {@link Service}s that handle asynchronous * requests (expressed as {@link Intent}s) on demand. C原创 2021-02-09 18:58:40 · 248 阅读 · 0 评论 -
谈谈Android源码——HandlerThread
HandlerThread 介绍HandlerThread 继承自 Thread,所以它本质上还是一个线程。那么它的作用是什么,与 Thread 又有什么区别呢?HandlerThread 源码中有这么几行注释/** * A {@link Thread} that has a {@link Looper}. * The {@link Looper} can then be used to create {@link Handler}s. * <p> * Note that just原创 2021-02-09 15:54:08 · 263 阅读 · 0 评论 -
Handler机制源码详解
Handler对于Android系统来说可以是非常重要的了,因为它贯穿了整个Android系统,它随处可见,没有Handler,Android系统也就不起作用了。流程介绍Android系统是以消息驱动的,整个流程可以大致概括为:发送消息 --> 添加消息到队列 --> 从队列中获取消息 --> 处理消息上面的流程可以引出几个类分别是,发送消息的Handler,将消息Message发送到消息队列MessageQueue,Looper从消息队列循环取出消息,然后交给Handler处理原创 2020-09-16 21:26:51 · 1605 阅读 · 6 评论 -
Android实现搜索关键词高亮显示-Kotlin
在做Wandroid项目时有一个搜索功能,要在搜索结果中将匹配到的关键词高亮显示。但是 玩安卓API并没有提供颜色的高亮,只有字体斜体,效果看起来并不明显,并且昵称也参与了搜索,但并没有增加``HTML`标签返回,这就有点美中不足了。因此我们自己动手来做一个。API返回结果{ ... "title": "微信在Github开源了Hard<em class='highlight'>coder</em>,对Android开发者有什么影响?", ...}Wandroi原创 2020-08-26 15:21:53 · 1402 阅读 · 0 评论 -
时隔数周,玩安卓Kotlin版本的Wandroid终于来了
它来了,它来了,虽说是项目建立了比较长的一段时间,但是真正开始做用了2周。接触Kotlin也算是有一段时间了,但是都没有利用Kotlin输出点什么东西来,于是就有了此项目《玩安卓Kotlin版本的Wandroid》,当做学习Kotlin的练手项目。部分参考 wanandroid ,感谢。基本上都是自己瞎设计的。项目采用Kotlin语言,使用ViewModel + LiveData + 协程等。同时也非常感谢API提供者鸿洋大神。已有功能Banner、热门文章广场,可查看文章作者分享的所有文章原创 2020-08-25 22:25:32 · 656 阅读 · 0 评论 -
自定义TabLayout底部倒三角Indicaotor
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IQsFzdbj-1595837272450)(F:\Blog\images\自定义TabLayout底部倒三角Indicaotor\preview.gif)]本篇是通过自定义系统自带的material库里面的TabLayout来实现上图效果。通过分析,可以分为以下几个步骤:绘制矩形绘制倒三角合并矩形和倒三角设置indicator整体效果用 xml 的 layer-list 来绘制。整体背景是一个圆角矩形,一个原创 2020-07-28 11:22:48 · 1681 阅读 · 0 评论 -
AndroidStudio修改Git编辑器
AndroidStudio 默认的 Terminal 编辑器位 cmd,我们可以将它更换为其他编辑器。更换为git-bash打开 AndroidStudio 的Settings 页面,Tools -> Terminal,设置 Shell path 为本机中 git-bash.exe 的路径。再次打开 Terminal,发现页面变了个人感觉 git-bash 比 Windows 的 ...原创 2019-10-25 13:45:55 · 856 阅读 · 0 评论 -
Android的进程间通信AIDL使用步骤
虽然很多应用都是在一个进程中,但是同样的也有很多应用是运行在不同进程中的,一个进程Crash了并不会影响其他的进程。因此在不同的进程中就需要相互通信了。这就引出了IPC(Inter-Process Communication)的概念。AIDL(Android Interface Definition Language)就是实现IPC的一种方式。AIDL支持的类型:基本类型、String、C...原创 2018-04-28 08:52:40 · 1238 阅读 · 0 评论 -
Live Templates提高Android开发效率
Live Templates 是 AndroidStudio自带的一个工具,通过设置一个固定格式的模板,根据设置的模板 “KEY” 来快速补全代码达到提高效率的效果。AndroidStudio 为我们提供了默认的一些模板,而且也支持自定义模板。 Live Templates 位于 File >> Settings >> Editor >> Live Templates AndroidStudio一原创 2017-07-26 22:06:02 · 452 阅读 · 0 评论 -
查看SharedPreferences中保存的数据
Android开发中一般都是将配置文件保存至 SharedPreferences 中,除了使用 getString 等方法获取保存的值之外有什么办法可以直观的看到所保存的值呢?答案是使用 adb 工具。步骤:一、打开命令提示符(Win+R)输入cmd回车; 二、输入命令 adb shell 打开终端;● 如果提示 'adb' 不是内部或批处理文件。说明系统环境变量中没有配置 adb 的路径。原创 2017-07-25 21:56:29 · 10412 阅读 · 0 评论 -
AndroidStudio调试利器——Android WiFi Adb
一个好的工具能加快开发效率,调试工具亦然。 传统安卓调试就是拿着一根数据线和设备连接,这样既需要一根好的数据线,而且经常拔插USB接口,接口本身也有一定的损伤。还有一个致命的弱点就是,当有些设备不便于连接电脑时,我们就无法进,行直接编译运行测试了。不过万能的IDE给我们提供了插件Android Wifi Adb,这样我们就可以不需要数据线就可以爽歪歪的进行测试了。操作步骤File->S原创 2017-06-07 00:07:58 · 1214 阅读 · 1 评论 -
使用RecyclerView加载网络图片时出现no adapter attached skipping layout
今天在写项目中使用RecyclerView加载网络图片中遇到这个问题,第一次刚进入该Activity中不会出现,当我刷新时就会出现这个问题,我的问题的表现形式为刷新后上方布局一片空白,但是通过手势上拉的时候数据又会出来。 纠结了挺久之后发现是因为recyclerView.setLayoutManager()与recyclerView.setAdapter()的问题,发现这两个必须都要写上才能正原创 2016-09-11 15:00:33 · 5896 阅读 · 0 评论 -
使用EditText出现java.lang.StackOverflowError报错
最近项目中有个在EditText中输入子网掩码(xxx.xxx.xxx.xxx)形式的需求,只需 手动填入数字,自动添加”.”进去。于是想到了EditText的addTextChangedListener, 不过在editText.setText()时就碰到了问题,报了java.lang.StackOverflowError错误。 @Override public void onTextCha原创 2016-10-13 11:19:15 · 1398 阅读 · 0 评论 -
底部弹出框BottomDialog
BottomDialog日常需求中通常都会有这样的需求,点击按钮会从底部弹出一个对话框,选择操作。例如分享或者更换头像弹出对话框。因此抽空将此功能封装成库,方便以后引用。ScreenShotImportMavenStep 1. Add the JitPack repository to your build file<repositorie...原创 2018-03-27 14:29:51 · 6645 阅读 · 0 评论 -
Android自定义View——风车
最近在Pure天气上看到一个风车的效果感觉不错,决定来模仿一个类似的。Pure天气的效果图:自己做的效果图:太大了感觉蛮丑的 (┬_┬)问题分析风车可以由一下几个部分组成:2条线架在一起是风车架子三个风车叶子组成,每个叶子可以看成2个等腰三角形组成(便于计算,小等腰三角形是一个等腰直角三角形),每个叶子对应边的夹角为120度让每条边绘制的时候角度递增形成动画为了避免叶子过长,在旋转的时候超出原创 2017-11-19 16:15:10 · 986 阅读 · 1 评论 -
Android自定义View时获取文字宽高
获取文字宽度:private int getTextWidth(String text, Paint paint) { Rect rect = new Rect(); // 文字所在区域的矩形 paint.getTextBounds(text, 0, text.length(), rect); return rect.width();}获取文字高度:private int原创 2017-11-16 20:36:10 · 2446 阅读 · 0 评论 -
一步一步带你实现自定义圆形进度条(详解)
每次看到别人做出炫酷的都会想,这个应该很难吧?这是心理上先入为主的就这么认为了,其实实现很简单,下面一步一步的详细剖析自定义圆形进度条的步骤。首先看效果图: 篇幅有点长,耐心看完肯定get新技能。看每一个视图都包含了些什么。最里层一个蓝色圆形中间一层显示进度的橙色扇形圆弧最外层一个红色圆环显示进度百分比的文字以及下方提示文字下面来一步一步实现:创建一个类继承View,并实现几个构造方法原创 2017-06-28 09:05:24 · 5831 阅读 · 0 评论 -
Android从相册选择图片和调用系统摄像头拍照
Android开发中很多情况下需要从图册或者相机中获取到图片, 下面就分享一个小栗子。效果为从相册或者拍照获得的图片然后设置给界面中的ImageView。至于对话框的弹出方式这里就不赘述了,请自行参考:Android实现QQ换头像的对话框在最底下会给出APK和源码。<?xml version="1.0" encoding="utf-8"?><Linea...原创 2016-10-17 22:32:07 · 921 阅读 · 2 评论 -
Android实现QQ换头像的对话框
之前一直觉得QQ换头像弹出的对话框挺好看的,而且在项目中也有这个 需求,于是写一个Demo出来分享一下。话不多说,先来张效果图看看。 上面是QQ中的效果。上面的效果图为需要实现的效果。简单来说,就是弹出了一个对话框。接下来说说是怎么实现的。对话框Dialog中的是自定义View,下面先贴出代码head_dialog。<?xml version="1.0" encoding="utf-8"?><原创 2016-10-12 22:34:18 · 1445 阅读 · 0 评论 -
java.lang.IllegalStateException: Fragment already active,Fragment.setArguments()问题
在两个Fragment中传递数据的时候就会报这个错误:java.lang.IllegalStateException: Fragment already active at android.support.v4.app.Fragment.setArguments(原创 2016-10-08 17:57:52 · 603 阅读 · 0 评论 -
个人理解的Android设计模式之观察者模式
接触安卓有一段时间了,之前一直都不懂什么设计模式之类的, 最近在做一个项目,从项目中理解到了一种观察者模式,个人 觉得这种观察者模式很好理解,也很好运用。何为观察者模式?观察者模式由 观察者 和 被观察者 组成。简单的抽象成2种角色:观察角色、被观察角色。观察角色时刻关注着被观察角色的动态,被观察角色一有动向就会向 观察角色发出一个通知,告诉它“我变化了”,你该做出相应的动作了。观察者模式的应原创 2016-09-27 21:58:24 · 283 阅读 · 0 评论 -
Activity的启动模式
1.standard在《第一行代码》中看到,学习顺便记录下。standard是Activity默认的启动方式。下面为点击事件:Log.d("FirstActivity",this.toString);Intent intent = new Intent();intent.setClass(FirstActivity.this,FirstActivity.class);原创 2016-04-06 16:48:34 · 334 阅读 · 0 评论 -
找不到DaggerApplicationComponent类
在学习开源项目微阅的时候,第一次打开碰到红色波浪线的错误DaggerApplicationComponent 类找不到解决办法:这个类是Dagger自动生成的,只需要rebuild一下项目就可以了。原创 2018-03-05 22:11:19 · 4475 阅读 · 0 评论 -
Android开发问题日记
1. 使用 Rxjava2 和 Retrofit2 依赖库运行项目报错 :<问题出现>依赖库:compile 'io.reactivex.rxjava2:rxjava:2.0.7'compile 'io.reactivex.rxjava2:rxandroid:2.0.1'compile 'com.squareup.retrofit2:retrofit:2.3.0'compile 'com.sq原创 2017-10-16 13:03:06 · 417 阅读 · 0 评论 -
Android-RSA算法加密解密
被这个小问题困了2天,终于被干掉了。安卓中利用RSA算法加密和解密 整个流程大致为:生成密钥对->获取公私钥->对明(密)文加(解)密。package com.cc.encrypttest;import android.util.Base64;import java.security.InvalidKeyException;import java.security.KeyFactory;原创 2016-11-24 18:07:11 · 2710 阅读 · 0 评论 -
Android修改系统时间
最近碰到修改系统时间的需求,折腾了一段时间,发现网上有一种方法是通过 命令的方式修改的。在这里感谢那位老兄的方法。TimeManager.setSystemTime:public static void setSystemTime(Date date) { SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd原创 2016-10-13 18:11:59 · 6239 阅读 · 0 评论 -
AndroidStudio导入jar包或第三方开源工程库library
在开发项目的时候或多或少都会引用第三方开源工程库或者是自己已经写好的项目需要引用。常见的方式分为三种:Jar 包的形式AndroidStudio 盛行的方式,在 app 的 build.gradle 文件的 dependencies 中 compile引用一个完整的工程对于 Jar 包形式 :在 app 目录下新建一个 libs 文件夹,将需要导入的 Jar 包文件复制粘贴进去。 此时J原创 2016-10-09 17:10:00 · 803 阅读 · 0 评论 -
AndroidStudio出现tools:replace="android:icon"问题
在做项目的时候需要导入第三方库时碰到这个问题;Error:Execution failed for task ':app:processDebugManifest'.> Manifest merger failed : Attribute application@icon value=(@mipmap/ic_launcher) from AndroidManifest.xml:14:9-43原创 2016-09-23 11:33:11 · 17236 阅读 · 2 评论 -
WebView上传文件遇到的坑openFileChooser
最近公司项目碰到WebView上传图片的问题,在这方面纠结了挺长时间,把解决问题的思路记录一下。至于 WebView 需要的配置方面这里就不说了,自行百度。首先 WebView 要重写 WebViewClient 的 shouldOverrideUrlLoading 方法,让链接直接 在APP内部打开而不是跳转到系统浏览器或者是第三方浏览器: webview.setWebViewClien原创 2016-09-23 14:40:21 · 4077 阅读 · 0 评论 -
Gradle配置不同环境参数
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,目前也增加了基于Kotlin语言的kotlin-based DSL,抛弃了基于XML的各种繁琐配置。AS创建项目完成后默认提供了debug和release两种环境的包,前者是测试包,后者是正式发布包。在默认情况下,debug和r...原创 2019-12-16 19:10:32 · 1583 阅读 · 0 评论