
Android
whoami_I
这个作者很懒,什么都没留下…
展开
-
ARouter编译的那些坑
许久没有重新配置ARouter了,今天拉了个新工程配置ARouter发现了两个编译错误,特意记录下来一Task :app:processDebugMainManifest FAILED[androidx.versionedparcelable:versionedparcelable:1.1.1] /Users/admin/.gradle/caches/transforms-2/files-2.1/5b360719ff903741481f0aa47d1a878f/versionedparcelable-原创 2021-06-20 13:37:37 · 1096 阅读 · 0 评论 -
安卓源代码下载
清华的源不知道为什么下载不了,老是报错,使用中科大的源最终成功:https://lug.ustc.edu.cn/wiki/mirrors/help/aosp/原创 2021-05-19 11:06:38 · 277 阅读 · 0 评论 -
安卓 TextView显示温度符号
在Java中有一个用于摄氏度的Unicode符号: \u2103 。 对于华氏你可以使用\u2109 。示例代码: temperatureValue.setText((result) + " \u2109"); 如果你只需要度(○)圆形符号,你可以复制下面的代码 char tmp = 0x00B0; temperature.setText("60"+tmp); ...原创 2020-05-20 09:52:43 · 1989 阅读 · 0 评论 -
LayoutInflater参数的使用
LayoutInflater一个方法,原型为: public View inflate(XmlPullParser parser, ViewGroup root, boolean attachToRoot) 这个方法有两个重要的参数root和attachToRoot,那么这两个参数会影响什么呢?一、返回对象返回对象不一定是xml对应的View对象,可能是传进去的参数root// Dec...原创 2019-03-28 00:52:03 · 307 阅读 · 0 评论 -
ViewGroup事件的分发
ViewGroup事件分发的起点和View相同都是dispatchTouchEvent这个方法,只不过ViewGroup重写了View中的dispatchTouchEvent方法。疑问:1、ViewGroup如何把时间分发给子View?2、若要ViewGroup不把任何时间分发给子View,该如何做?3、从手指按下到事件分发到View,这中间经历了哪些过程?4、在一个事件流中,如果想要在...原创 2019-04-15 11:53:39 · 222 阅读 · 0 评论 -
如何使用android studio及夜神模拟器开发调试
先启动夜神模拟器,然后运行cmd命令,cd到夜神安装目录,执行命令:nox_adb.exe connect 127.0.0.1:62001 连接到模拟器;原创 2019-04-25 15:36:37 · 259 阅读 · 0 评论 -
适配Anddroid Q黑暗模式
其实适配黑夜模式非常简单,两步就能搞定,只需要增加黑夜模式的配置文件即可,剩下具体如何适配的,系统已经帮我们做好了。适配的步骤:1、使得App的主题继承自Theme.AppCompat.DayNight2、增加黑夜模式下的配置文件,例如,如果要修改颜色,那么增加一个values-night文件夹,里面新建colors.xml配置文件即可。如下图:举个例子:先上效果图黑夜模式:白...原创 2019-08-16 21:19:56 · 542 阅读 · 0 评论 -
安卓如何申请sd卡权限并写入文件
最近项目有需求,需要向sd卡写入文件,在网上找了一大堆文章,很多文章都是吧Internal Storage当成了sd卡,到最后解决办法都变成了如何动态申请权限了。在此记录一下我的解决办法,在安卓4.4之后,使用android.permission.WRITE_EXTERNAL_STORAGE权限已经不能向外置sd卡里面写文件了,申请外置sd卡的权限需要使用google提供的Storage Acc...原创 2019-09-20 20:12:52 · 4903 阅读 · 0 评论 -
如何优雅的申请sd卡权限
在上一篇文章安卓如何申请sd卡权限并写入文件已经解决了向sd卡里面写入文件的问题了,解决办法需要startActivity,然后在onActivityResult方法里面去监听是否授权成功,这种方法对当前Activity的侵入性太强了,如何优化呢?我的想法来自于rxpermission和glide,我们知道rxpermission申请权限非常简单,只需要这么几句就搞定了:RxPermissio...原创 2019-09-20 21:22:18 · 1828 阅读 · 0 评论 -
Android ThreadLocal类源码解读
ThreadLocal类用于线程私有数据的存储,比如每个线程都有各自的Looper,但是如何获取这个Looper呢?使用的方法就是ThreadLocal这个类的特性,我们知道一个线程对应一个Thread对象,所以说Thread类中的数据都可以认为是线程的私有数据,前提是这个数据的引用不会扩展到其他线程,在Thread对象中专门有一个变量用于存储线程私有数据:ThreadLocal.Values...原创 2019-04-04 11:37:10 · 281 阅读 · 0 评论 -
插值器与估值器
在属性动画中对值的计算需要插值器和估值器的参与,这样能产生更加丰富的动画一、插值器插值器其实是变化快慢的一个衡量标准,根据时间流逝的比例,来得出属性值变化的比例,具体来看一下插值器的源码:public interface TimeInterpolator {/** * Maps a value representing the elapsed fraction of an animat...原创 2019-04-03 21:46:42 · 480 阅读 · 0 评论 -
setContentView如何构建布局
我们在写安卓应用程序的时候经常要写这一句:setContentView(R.layout.activity_main);这一句代表的含义就是将这个Activity的布局设置成指定文件资源,那么我们所看的界面是如何构建的呢?这就要从源码中去分析.WindowDecorViewDecorView是Window的一个内部类,源码中PhoneWindow这个类里面有一个DecorView的引用...原创 2019-03-19 10:13:36 · 339 阅读 · 0 评论 -
git for windows下载路径
https://npm.taobao.org/mirrors/git-for-windows/原创 2018-10-29 16:03:11 · 497 阅读 · 0 评论 -
简易安卓短信收发应用
刚学安卓,最近在写一个短信的收发程序,但是在模拟器上面可以收发,在真机上面却不行,解决办法:对于收短信,由于现在很多手机系统对短信、电话等状态的读取设置了很多权限,需要手动去打开(目前不会用代码申请这些权限),例如在小米5手机上面找到应用的权限管理,打开Message这个应用(编写程序的名字)的所有权限:这样接收短信就没什么问题了,然后在manifest文件里面加上android.permi...原创 2018-12-05 17:41:55 · 1418 阅读 · 0 评论 -
三种inflate方式的区别
在安卓开发中,经常要将一个xml布局文件inflate成一个view对象,用到的方法通常是三种:(1)View.inflate(Context context, int resource, ViewGroup root);(2)LayoutInflater.from(context).inflate(int resource, ViewGroup root);(3)getSystemServ...原创 2019-03-28 00:52:58 · 755 阅读 · 0 评论 -
为什么requestDisallowInterceptTouchEvent方法会失效
requestDisallowInterceptTouchEvent方法是用来禁止或允许ViewGroup是否能拦截事件,通常用来处理滑动冲突.但如果在ViewGroup初始化之后就调用这个方法会发现这个方法并没有起到作用.示例class MyLayout extends LinearLayout { public MyLayout(Context context, AttributeSe...原创 2019-03-20 14:32:43 · 941 阅读 · 0 评论 -
View事件分发
本文只分析View的事件分发,不包括ViewGroup.通常我们在程序中监听点击事件是使用view提供的两个接口:public void setOnTouchListener(OnTouchListener l) { getListenerInfo().mOnTouchListener = l; }public void setOnClickListener(OnCl...原创 2019-03-20 15:41:23 · 216 阅读 · 0 评论 -
安卓Handler机制
Handler机制运用在安卓线程之间的消息传递。Handler之所以能够运行,得力于与Handler紧密相联的Looper,每一个线程都只能有一个Looper,一个Looper就可以看成一个事件执行者,Handler决定对事件做什么具体操作,所以一般继承了Handler就要重写其中的handleMessage方法,那么事件从哪里来呢?从消息队列MessageQueue中得来。Handler的使用...原创 2019-03-16 14:57:17 · 1473 阅读 · 0 评论 -
View的measure过程
问题概述一个View想要展示到界面上要经过三个流程:measure过程,也就是确定View的长和宽layout过程,确定View的位置draw过程,将View绘制到界面上本文首先介绍measure流程,measure从其字面意思就是测量的意思.也就是获取View的尺寸.安卓的测量分成两种,一种是View;另一种是ViewGroup。ViewGroup可以认为是布局,其实安卓中的五大...原创 2019-03-13 10:43:29 · 293 阅读 · 0 评论 -
View的layout过程
http://www.cnblogs.com/xyhuangjinfu/p/5435253.html转载 2019-03-13 15:27:52 · 171 阅读 · 0 评论 -
eclipse adt保存时格式化所有代码
preference->Android->EditorsFormat on save前面打勾然后apply->ok原创 2018-10-28 19:50:07 · 263 阅读 · 0 评论