自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

文韬武略的专栏

我就是我,追求自由快乐的自我!

  • 博客(370)
  • 资源 (10)
  • 收藏
  • 关注

原创 TabLayout的Indicator自定义宽度

方法一设置Indicator的宽度<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"> <item android:width="10dp" android:hei.

2020-05-19 14:43:14 1937 1

原创 BottomSheetDialogFragment中EditText问题

最近在做一个评论弹框的时候遇到两个问题:1.BottomSheetDialogFragment中的EditText有行数显示,当内容过多后,滑动内容和BottomSheetDialogFragment的上下拖动事件冲突了。解决办法:禁止BottomSheetDialogFragment的上下拖动功能设置回掉监听:override var mBottomSheetBehaviorCallback: BottomSheetBehavior.BottomSheetCallback? = object

2020-05-13 09:22:34 1559 2

原创 RecyclerView拖动动画

最近有个需求,当横向RecyclerView滑动到底部,不能滑动后,此时在拖动RecyclerView,需要显示底部一个动画效果,如图:然后很自然的去自定义RecyclerView。最后发现在拖动RecyclerView时,需要拖动一段距离后才能显示我的自定义布局,感觉半天拖动不出来底部布局,很卡点样子。而这个起始的拖动距离差一直是25,而我打印了系统最小滚动距离ViewConfigu...

2020-05-05 11:33:12 604 2

原创 解决CoordinatorLayout中RecyclerView抖动问题

待写相关链接:https://www.jianshu.com/p/b987fad8fcb4?tdsourcetag=s_pcqq_aiomsg

2020-04-03 16:38:27 2709 4

原创 RecyclerView单界面实现多界面效果

1.前沿我们的产品经常会出现这样的界面:

2020-04-02 14:38:25 670

原创 自定drawable

自定drawable的时候,可能会遇到各种奇葩的需求,但是我们可以通过自定义一个selector.xml文件来实现。比如:自定义<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <it...

2020-03-19 20:47:08 139

原创 判断NavigationBar是否显示,获取屏幕高度

1.判断NavigationBar是否显示首先看几组数据vivo-X21A: screenRealSize : 2280 , screenHeight : 2201, statusBar : 84, navigationBar : 126(Android9导航栏一键)vivo-X21A: screenRealSize : 2280 , screenHeigh...

2020-03-04 13:44:44 675 2

转载 沉浸式布局下,EditText被输入法挡住问题

项目中遇到的一个问题,解放方法:https://blog.csdn.net/qq_34161388/article/details/89101442,感觉博主的实践。

2020-03-03 14:19:41 324

原创 srcrollview嵌套webview实现流畅滚动

试了很多方法,也找了很多方法,最后无意中发现一个大哥说这样可以:android:fillViewport="true"奈何不小心把界面关了,真的要给他点赞。

2019-12-24 15:37:55 196

原创 charles手机网络抓包

1.开发环境电脑:MacIDE: Android Studio硬件:Android手机2.查看charles本地IP点击help->Local IP Address:就会出现IP界面:3.查看charles端口号默认是:88884.设置手机代理确保手机和电脑在一个内网,也就是连接的同一个Wi-Fi。4.1 长按已经连接的Wi-Fi,...

2019-12-13 10:30:50 416

原创 Android Studio推荐使用的插件

1.Gson强大的json实体类生成器,快捷键alt+insert,弹出选择框。2. TranslationPlugin强大的英文翻译工具:https://github.com/YiiGuxing/TranslationPlugin操作说明: Show Translation Dialog... 打开翻译对话框。默认显示在工具栏上。默认快捷键: Windows ...

2019-12-13 10:04:58 151

原创 RxJava线程切换原理

上图:

2019-11-27 00:29:30 148

原创 EventBus你真的会用吗?

EventBus是我们在跨线程中,使用较多的一个开源通信组件了。那么你真的知道怎么使用EventBus吗?如果使用过EventBus几年,并了解过EventBus源码的同学就会知道,EventBus在register注册时,起初只是使用反射来查找以onEvnet开头的方法来处理消息,也就是onEventxXXX就是我们订阅类的消息处理方法。我们都知道反射是有一定的性能损耗的。所以,后来Ev...

2019-11-18 23:08:04 227

原创 EventBus使用和源码详解

目录1. 架构图2. 使用3. 源码解析3.1 @Subscribe注解3.1.1 threadMode: 配置消息接收是在哪个线程3.1.2 sticky : 粘性事件3.1.3 priority : 接收事件的优先级3.2 注解解析3.2.1 注解类上的元注解3.2.2 collectSubscribers收集订阅类和订阅的方法信息3.2.3 生...

2019-11-16 16:20:40 567

原创 android Message机制详解

最近被问到Message池最多有多少个?瞬间懵逼了。是该好好来了解下Message机制了。Message源码就不贴了,自己点开看下就好。一般滴,我们是这么用的:Message msg = Message.obtain();msg.what = MSG_SHOP;msg.obj = bean;handler.sendMessage(msg);为啥这么用呢?人...

2019-11-10 21:47:10 605

原创 react-native开发环境踩坑

硬件开发环境:Mac电脑1.按照react-native中文文档进行安装https://reactnative.cn/docs/getting-started/2.iso报错2.1运行react-native run-ios报错Error: Could not find iPhone X simulator由于没有找到iPhone X模拟器,不清除为啥XCode并没有自带...

2019-10-06 19:36:57 336

转载 SQLiteCantOpenDatabaseException: unable to open database file code 14

转载自:https://www.jianshu.com/p/6ad0491404da

2019-07-12 17:54:21 1187

原创 自定义SeekBar

实现的目标:1.自定义SeekBar背景android:progressDrawable="@drawable/seekbar_bg"<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">...

2019-07-11 15:05:04 2595

原创 DeepLink功能

可由第三方应用唤醒,也可以由网页唤醒,也可以通过adb命令直接测试唤醒。1.网页唤起用例:<!DOCTYPE html><head> <meta charset="UTF-8" /> <meta id="viewport" name="viewport" content="width=device-width,initial-s...

2019-06-19 09:15:12 3110

原创 textview折叠和显示多行

先上需求图:网上见的跟多的是把向下图标换成“更多”字样,然后都可以点击。而我这个是点击展开后不需要显示收缩按钮,其实要做还是可以的。我主要是通过布局来实现的,属于取巧。布局代码:用相对布局包裹内容和图标<RelativeLayout android:id="@+id/booke_detail_resume_layout" ...

2019-04-19 15:00:38 1001

原创 android第三方库混淆——一行代码搞定

你还在辛苦的位一个个第三方库配置混淆代码吗?你还在github上找第三方库的混淆代码吗?你还在百度第三方库的混淆代码吗?下面来告诉你,一行代码就可以搞定了!#除了自己项目目录,其他都不混淆-keep class !com.exmaple.demo.** {*;}...

2019-03-13 15:10:16 1100 2

原创 java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Buffer

最近在使用OkHttp3的时候碰到了下面这个报错:java.lang.NoClassDefFoundError: Failed resolution of: Lokio/Buffer我本来是这样导入的:implementation 'com.squareup.okhttp3:okhttp:3.11.0'一点毛病都没有。可是不方便同事集成我的aar,所以我得换成jar包来集成okh...

2019-03-12 08:28:09 21211 1

原创 java静态类,块语句相关执行顺序

面试中碰到的一个面试题,其实我还记得我在《Java编程思想》中也看到过,可能当时还是理解的不够透彻,所以还是没有做对。A类:public class A { { System.out.print("A"); } static { System.out.print("B"); } A() { Sys...

2019-03-10 23:03:27 250

原创 webview 8.0系统不显示问题

今天被WebView坑了一把。在5.0系统上显示网页一点问题都没有,而在8.0系统无法显示网页,百度了一下才发现,原来是系统版本问题。/*** Android8.0以下的需要返回true 并且需要loadUrl;8.0之后效果相反*/@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String...

2019-03-08 18:38:38 1057 2

原创 监听APK安装广播

在开发中,我们经常会需要监听应用的安装、卸载或替换,但是经常又会遗忘某些关键点。1. 配置权限&lt;uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/&gt;2. 注册广播private void initReceiver() { IntentFilter in...

2019-03-08 17:57:17 2112 1

原创 Tinker1.9.9 gradle接入指南

前言Tinker是什么Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。它主要包括以下几个部分:gradle编译插件:tinker-patch-gradle-plugin 核心sdk库:tinker-android-lib 非gradle编译用户...

2018-12-29 17:29:45 1078

原创 tinker接入

tinker参数配置说明: 参数 默认值 描述 tinkerPatch   全局信息相关的配置项 tinkerEnable true 是否打开tinker的功能。 oldApk null 基准apk包的路径,必须输入,否则会报错。 newApk null 选填,用于编译补丁apk路径。如果路径合法,即不再编译新的安...

2018-12-25 09:27:18 203

原创 gitosis新建项目

1. 添加项目和相应的用户权限详情参考:https://blog.csdn.net/fwt336/article/details/83822419,此处不再多写。2. 新建项目目录2.1 登录到服务器:ssh user@xxx.xxx.xxx.xxx2.2 进入~/git/repositories目录,执行sudo git init --bare test.git创建项目...

2018-12-06 11:29:45 535 1

原创 ARouter使用之坑

1.使用方法1.1添加依赖和配置android { defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()...

2018-11-30 16:48:41 2827 5

原创 提交代码到github

1. 新建目录work命令:mkdir work2. 初始化git仓库进入Vwork,然后命令:git init3. 配置git每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:$ git config --global user.name "John Doe"$ git config --global user.ema...

2018-11-30 10:16:22 164

原创 ubuntu双系统安装到安卓开发环境搭建

1.ubuntu系统下载:https://www.ubuntu.com/download/desktop2.ubuntu和win10的双系统安装:https://www.jianshu.com/p/ad5dc60e453d需要补充的有:2.1 细心谨慎按照上面的步骤一步一步来,能设置的都给设置一遍,该注意的上面都已经说了。2.2 独立磁盘空间尽量选择一个单独的磁盘来做ubu...

2018-11-27 11:40:24 686

原创 全局字体快速替换

直接在BaseActivity中添加以下代码:public static Typeface typeface; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { if (typeface == null) { typeface = Type...

2018-11-22 11:59:24 687

转载 无需自定义View,彻底解放shape,selector吧

深度好文,解决了自定义shape文件过多的问题。https://juejin.im/post/5b9682ebe51d450e543e3495github地址:https://github.com/victorfan336/BackgroundLibrary

2018-11-21 15:16:34 161

原创 修改git项目用户权限权限

1.远程登录服务器然后切换会git用户:然后进入~/git/gitosis-admin/目录:可以看到一个文件和一个文件夹,其中gitosis.conf用于管理项目权限,keydir用于存放所有用户的公钥,也就是xxx.pub文件。2.将user.pub加入keyDir目录中需要新增权限的用户在本机电脑生成xxx.pub文件,然后加入到git/gitosis-adm...

2018-11-07 14:08:47 31769

原创 常用的虚拟机性能监控和故障处理工具

1. jps : 虚拟机进程状况工具         可以列出正在运行的虚拟机进程,并显示虚拟机执行主类名称,以及这些进程的本地虚拟机唯一ID(LVMID)。         命令格式: jps [option]   [hostid]         option: -q:只输出LVMID,省略主类的名称;                     -m: 输出虚拟机进程启动时传给主...

2018-11-03 12:37:30 555

原创 anr日志获取

参考一下链接整理出来的代码:https://codezjx.com/2017/08/06/anr-trace-analytics/https://www.jianshu.com/p/6d855e984b99http://gityuan.com/2016/07/02/android-anr/非常感谢以上博主的奉献。 1.ANR发生的条件输入事件:按钮事件10秒内未响应...

2018-09-29 14:29:50 6305

原创 atlas使用

bug的上线远程修复和模块化更新越来越火,也确实给开发人员和公司带来了很大的便利。而我们公司最近也准备接入阿里巴巴的atlas,下面是使用到的一些资料和总结。一、所有模块独立动态更新1、 app的build.gradle的语句"version = getEnvValue("versionName", "1.0.0");"中修改想要生成的app的versionName(默认为1.0.0) ...

2018-09-22 17:19:46 1652

原创 json类型转换

前言在日常开发中,我们经常会用到json转对象,或者对象转json的情况,一般用到的就是阿里的Fastjson和谷歌的Gson。本篇要说的是Gson中如何将json数据转换为我们想要的数据类型。1.json直接转对象我们一般的操作姿势:直接复制后台下发的json,然后在Android Studio使用Gson插件快捷生成实体类:但是呢,有时候这块是一个模版jso...

2018-09-22 10:43:57 9675

原创 远程adb调试手机

前言平常开发时,我们都是直接用数据线连接手机或设备,然后进行调试。那么有没有一种场景,我们无法用数据线连接,又或是不方便用数据线连接的时候呢?答案是肯定的。这个时候,adb命令就可以大做文章了。1.条件       1)root过的手机:因为我们需要启动adbd端口,所有需要使用adb命令,但是一般手机或用去却没有该权限;       2)手机或设备与电脑处于一个局域网内 ...

2018-09-19 14:39:14 3540

原创 破解SmartGit

SmartGit作为git图形化管理工具,不论是界面还是功能是其他软件所很难媲美的,特别是对于git命令不熟悉的新手。但是只能使用30天,付费是不可能的啦,下面说下破解的方法。  1. 打开“运行”或使用快捷键 windows+R ,输入 %APPDATA%\syntevo\SmartGit 如下图所示:点击“确定”,进入到文件夹: 2. 进入以数字命名的文件夹,删除里...

2018-09-18 17:02:30 3383 2

connect.apk

用于安装在设备或手机上,让电脑能够通过adb远程调试手机或设备

2018-09-19

connect-apk

用于安装到已经root了的机器上,用于开启adbd端口5555,才能用adb connect ip命令连接

2018-09-19

onTouch demo

在平常开发中,我们经常会遇到点击事件冲突的情况,或者在面试中被问及,那么下面我们来看下onTouch事件到底是怎么回事。

2017-05-10

Hello-jni-ndk

jni层和java层代码的互相调用demo 相关说明见我的博客:http://blog.csdn.net/fwt336/article/details/52296927

2017-03-03

RoundProgressBar

自定义进度条

2016-10-31

jni开发源码

http://blog.csdn.net/fwt336/article/details/52296927 文章源码

2016-08-24

fragmentargs

fragmentargs demo

2016-08-09

设计师测量文本行距

由于设计师在标注段落行距时,测量出来的行距不标准,或者说不精确,为什么呢?因为他们只能顶着上下两行文字进行行距的测量,所以量出来就不准了。你又或许会说,那就让他上下空出几个像素来测量不就准确了吗?但是,具体又该空出多少像素呢?老板的要求是“最多1个像素的误差,或者根本就不能有误差”,我要撞死了去!所以就只能自己写demo来研究研究了。

2016-06-23

viewpage切换动画

viewpage切换动画,包括了缩放效果、alph透明度效果、选择效果和移动效果。解决了安卓3.0以下版本的不兼容问题。

2016-05-13

Snake Eclipse

基于eclipse的贪吃蛇游戏,添加到eclipse中运行就可以了

2012-11-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除