![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
就是那只会飞的帅猪
这个作者很懒,什么都没留下…
展开
-
7.0以上版本沉浸式状态栏解决
在Android7.0以上版本的手机中,发现沉浸式状态栏不好使了,用以前的写法,状态栏会有一层黑色的半透明遮罩原因在7.0以上,状态栏颜色是由系统动态运算得出的,因此我们给它设置透明色也是没用的。解决办法加入判断逻辑,通过getWindow().getDecorView()可以获取到这个DecorView类的对象,然后通过反射修改这个对象的成员mSemiTransparentStatusB...原创 2018-10-08 13:22:16 · 459 阅读 · 0 评论 -
再次碰到依赖冲突的问题,这次是另外一种姿势!
自己折腾的小项目进行到一半,出现了状况,在加入了Picasso的依赖之后,编译项目的时候报错:大概意思就是,有两个okio.Buffer。于是双击shift,全局搜索了一下okio,果然:于是乎展开项目的目录结构一探究竟,展开依赖包的目录,发现:bmob本身依赖了okio,而Picasso依赖okHttp,okHttp又依赖okio,所以又重新引入了一个okio(毕竟是自家的产品嘛),这...原创 2018-09-27 22:06:28 · 188 阅读 · 0 评论 -
android项目中values中ids.xml的作用
ids.xml——为应用的相关资源提供唯一的资源id。id是为了获得xml中的对象而需要的参数,也就是Object = findViewById(R.id.id_name)中的id_name。这些值可以在代码中用android.R.id引用到。若在ids.xml中定…ids.xml——为应用的相关资源提供唯一的资源id。id是为了获得xml中的对象而需要的参数,也就是Object = findV...转载 2018-10-05 13:15:49 · 1169 阅读 · 0 评论 -
惊!关于AndroidStudio你可能不知道的神奇技能
自动生成变量在有返回值的方法后面连缀上.var然后点回车,会有惊喜喔,哪怕是整个方法体作为另一个方法的参数,也可以用这种方法抽取出来,例子:...原创 2018-09-26 23:08:31 · 180 阅读 · 0 评论 -
Android Studio自定义文件Header(开头注释)
效果在类的开头,自动生成例如这样的注释:在每个类,或者接口,或者其他代码文件中,加入自己的名字,创建日期,以及文件基本信息等要素,对日常开发有极大的帮助。怎么实现首先,进入设置里面的File and Code Template(文件和代码模板),其中Files选项卡下面的是引用模板的代码,include下面的是具体的模板格式,两处都可以编辑,其实主要编辑的是include下的。仔...原创 2018-09-26 18:57:17 · 8028 阅读 · 0 评论 -
Android Studio解决依赖冲突
编译的时候报这个:所以人家都告诉你了,就是有多个库同时又引用了rxjava这个库,然后就不知道用拿个版本了。。。原因就是我的项目中bmob和rxvolley都用到了rxjava,只要在module的build.gradle下稍微更改下添加依赖的语句就可以了(这里直接排除掉io.reactivex包下的所有文件了)...原创 2018-09-21 01:38:41 · 1618 阅读 · 0 评论 -
自定义View的一个练习(中间带百分比显示的圆环形ProgressBar)
系统版本问题问题的原因在AndroidN之后,处于安全性的考虑,系统将禁止携带有file://类型Uri的Intent离开你的应用,否则应用会抛出异常。解决方法使用ContentProvider。其实准确来说是使用FileProvider,他是ContentProvider的一个子类,看名字就知道他是用来干嘛的。官方文档具体的步骤1.首先在Manifest文件注册Provider&...原创 2018-09-21 01:35:06 · 379 阅读 · 0 评论 -
使用RxVolley框架请求网络,发送参数为json格式的post请求,遇到的一些小问题
事发经过最近在实现一个机器人聊天的功能,因为想偷懒,于是网络方面就采用了RxVolley框架来实现。接口采用的是图灵聊天机器人。但是在实现的时候,发现,图灵聊天机器人api升级之后采用了比较复杂的json请求body,安装一些网上的教程写的请求代码没办法得到正确的返回值,于是决定自己研究研究。出现错误的代码一开始的代码是这样的: params.putJ...原创 2018-09-26 16:43:17 · 1054 阅读 · 1 评论 -
居然还有这种姿势?!Gradle科学管理多个模块下依赖包的版本
如果项目有几个模块,且存在依赖关系,他们如果依赖同一个库就必须版本一致。那么就需要一个科学管理依赖包版本的小技巧了。这里记录一个刚刚从大佬那里学来的新姿势。具体思路很简单,将同一个库的版本号提取成一个变量,放在项目的build.gradle文件就可以。具体步骤以这个项目为例项目MChat攻两个模块:一个app模块,依赖另一个common模块(Library)首先,在项目的build.gr...原创 2018-10-02 00:07:19 · 1682 阅读 · 0 评论 -
惊!关于BaseAdapter你可能不知道的真相(多种type的情况下)
在实现一些app的聊天功能的时候,经常要用到一个ListView显示多种布局。很多书本或者教程都有现成的模板代码,就是在BaseAdapter里面,重写getViewTypeCount,getItemViewType,然后就在getView里面判断具体条目的类型,返回对应的View。就好像下面的代码。初学的时候非常的不解。代码中对于View 的复用,难道不会造成混乱吗?例如在应该显示左边的聊天...原创 2018-09-26 00:49:53 · 606 阅读 · 0 评论 -
Mac升级Mojave之后,AndroidStudio插件报错,无解,重装过程
事发经过今天,apple放出了macOS Mojave的正式版,果断升级。不料,升级之后AndroidStudio翻车了系统更新完之后,不知道什么原因,无法新建项目,也无法新建module,具体就是在选择创建Activity的时候,直接卡死,点击下一步无反应,然后启动AndroidStudio的时候回报插件错误,错误信息是某个插件的路径,也没有什么使用的信息,实在找不到解决办法的情况下,只能重...原创 2018-09-25 21:01:02 · 1116 阅读 · 3 评论 -
关于Handler和内存泄漏
Handler可能引发内存泄漏的原因首先要了解两点: 1. 非静态内部类会持有外部类的this引用。为什么呢? 内部类虽然和外部类写在同一个文件中, 但是编译完成后, 还是生成各自的class文件,内部类通过this访问外部类的成员。1 编译器自动为内部类添加一个成员变量, 这个成员变量的类型和外部类的类型相同, 这个成员变量就是指向外部类对象(this)的引用;2 编译器自动为内部类的构...原创 2018-08-15 01:29:39 · 184 阅读 · 0 评论 -
对于LayoutInflater的一些理解
获取大家都知道LayoutInflater的作用是将布局填充到View中 用getLayoutInflater()方法或者getSystemService(LAYOUT_INFLATER_SERVICE)来获取 调用LayoutInflater类下的from方法,接收context返回一个layoutInflater对象接收三个参数的inflate()方法重点来了,Layo...原创 2018-05-31 00:07:58 · 183 阅读 · 0 评论 -
Android EditText 实现特殊格式输入
现实中经常遇到要输入特殊格式的字符串,比如MAC地址,IP地址等,可以自动匹配需要的 格式。实现方式是通过EditText.addTextChangedListener(TextWatcher)TextWatcher实现方式如下:[java] view plain copyclass MyTextWatcher implements TextWatcher{ private bo...转载 2018-04-28 23:39:46 · 552 阅读 · 0 评论 -
一个经典例子让你彻彻底底理解java回调机制
转载自xiaanming的博客以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式:Class A实现接口C...转载 2018-05-12 15:43:21 · 250 阅读 · 0 评论 -
关于Android P不能使用明文网络通信
在使用阿里云oss的API时,遇到了以下错误:CLEARTEXT communication to " xxxxxxxxx" not permitted by network security policy这个异常应该是oss的api调用的okHttp3抛出的,因为安卓新版本默认是不允许使用明文网络传输的,会强制让应用都使用https。文档:但是我们可以通过修改项目的网络配置来允许使用...原创 2018-10-09 23:45:07 · 2581 阅读 · 0 评论