Android
冬瓜去哪儿
这个作者很懒,什么都没留下…
展开
-
发布Android library到maven仓库
【代码】发布Android library到maven仓库。原创 2022-11-03 16:13:37 · 276 阅读 · 0 评论 -
kotlin ViewBinding的使用
ViewBinding的优点:仅仅支持绑定 View不需要在布局文件中添加layout标签需要在模块级build.gradle文件中添加 viewBinding = true 即可使用效率高于DataBinding,因为避免了与数据绑定相关的开销和性能问题相比于kotlin-android-extensions插件避免了空异常Gradle配置:// Android Studio 3.6android { viewBinding { enabled = true原创 2021-02-28 21:51:55 · 4597 阅读 · 2 评论 -
Kotlin “==“和“===“之间的区别
在kotlin中==比较的是数值是否相等, 而 ===比较的是两个对象的地址是否相等,比如: val a: Int =100 val b: Int? = a val c: Int? = a println(b == c) //true println(b === c) //false== 比较数值, 而===比较的是地址, 前者为true, 后者为false,这个和Java中的运行结果相同,那我们再看另一种情况: val a: Int =100 va原创 2020-05-10 19:58:22 · 418 阅读 · 0 评论 -
kotlin open与final
kotlin 的 open 与java 中的 final相反。kotlin中类和类中的方法都是final类不能继承,类中方法不能重写,打破final限制,需要添加open关键字:为类增加open,class可以被继承了open class BaseActivity : AppCompatActivity() { }为方法增加open,嘿嘿,就可以被重写了open fun setRoo...原创 2020-04-22 23:02:23 · 418 阅读 · 0 评论 -
Android 封装Span的各种用法
前言在开发过程中,TextView中会出现一些特殊内容(如:部分内容颜色、字体、大小不同,并且部分字体可点击),写多个TextView又会显得麻烦,那又怎么解决这个问题呢?首页我们来看看TextView的源码,在android.text.style包下,有很多Span类,那么我们可以使用SpannableStringBuilder来设置Span,先看看实现效果:使用方式: val builder = SpannableStringUtil.create(context!!)原创 2021-01-07 14:24:48 · 431 阅读 · 1 评论 -
Android通用DialogFragment
前言在开发过程中,我们会经常使用对话框,为了提高开发效率,于是我使用DialogFragment封装了一个通过的对话框。为什么使用DialogFragment首先在使用 DialogFragment之前,我们创建对话框一般都会采用Dialog的形式,并且从编写代码的角度来看,Dialog使用起来也较为简单,但Android 官方推荐使用 DialogFragment 来代替 Dialog。DialogFragment 有着Dialog 所没有的特性在手机配置变化,导致Activity需要重新创建时,原创 2020-12-22 11:41:43 · 4709 阅读 · 5 评论 -
EditText设置输入金额过滤器
editText.setFilters(new InputFilter[] {new MoneyInputFilter ()});MoneyInputFilter 类实现:/** * Created by Hc_Android on 2019/9/10. * 输入金额时的文本过虑器,可设置最大输入金额、小数点后位数 */public class MoneyInputFilter implements InputFilter { /** * 正则表达式:以0或正整数开头后跟0原创 2020-10-24 23:00:39 · 410 阅读 · 0 评论 -
Recyclerview分割线
JAVA代码:public class LinearLayoutDivider extends RecyclerView.ItemDecoration { private Paint mPaint; private Drawable mDivider; private int mDividerHeight = 2;//分割线高度,默认为1px private int mOrientation;//列表的方向:LinearLayoutManager.VERTICAL或Li原创 2020-10-22 15:47:50 · 479 阅读 · 0 评论 -
Android仿淘宝首页横条指示器
淘宝首页菜单底部的滑动位置指示器该如何实现呢?实现方法:1.上方横滑列表可以直接使用RecyclerView GridLayoutManager横向实现2.指示器实现步骤:(1) .计算出RecyclerView划出屏幕的距离w1和剩余宽度w2的比例y,y = w1 / (总宽度w3 - 可使视区域宽度w4)(2) .计算出指示器该移动的距离w5 = y * (指示器的总宽度w6 - 滑块宽度w7)(3) .指示器布局 <RelativeLayout android:原创 2020-05-31 00:58:05 · 2488 阅读 · 0 评论 -
android编译出现Invoke-customs are only supported starting with Android O (--min-api 26)
Android studio在编译项目的时候,会遇到如下问题:Android issues: Invoke-customs are only supported starting with Android O (--min-api 26) 解决方案:build.gradle文件中android节点下增加: compileOptions { sourceCo...原创 2020-04-22 22:07:50 · 1351 阅读 · 0 评论 -
Android Replugin实现插件化
在开发Android应用中,App会越来越大,变得越来越不好管理。各模块之间耦合度高、编译效率慢、项目冲突不断等等。那么要怎样才能解决这个问题呢?于是就出现了组件化开发和插件化开发,这里我主要着重讲解Replugin插件化开发。首先,我们需要认识Replugin框架,开发的app可以作为插件直接安装到宿主app中运行。而这个插件可以随时安装和卸载,非常方便。对于需要频繁更新的app或者使用频率比...原创 2020-04-13 23:35:26 · 913 阅读 · 0 评论 -
android安装apk出现android.os.FileUriExposedException
问题描述:解决AndroidN 上 安装Apk时报错:android.os.FileUriExposedException: file:///storage/emulated/0/download/%E5%85%A8%E5%90%8D%E7%82%B9%E6%BB%B4 exposed beyond app through Intent.getData()解决方法:1、在AndroidMan...原创 2019-08-10 15:15:25 · 7070 阅读 · 0 评论 -
解决com.google.code.findbugs:jsr305依赖库冲突问题
报错信息* What went wrong:Execution failed for task ':app:preDebugAndroidTestBuild'.> Conflict with dependency 'com.google.code.findbugs:jsr305' in project ':app'. Resolved versions for app (3.0.1)...原创 2019-07-12 15:17:38 · 8050 阅读 · 1 评论 -
Android app闪退后fragment重叠bug解决方法
方法一通过注释掉这句话,这样主 Activity 因为种种原因被回收的时候就不会保存之前的 fragment state@OverrideprotectedvoidonSaveInstanceState(Bundle outState) {//如果用以下这种做法则不保存状态,再次进来的话会显示默认tab//总是执行这句代码来调用父类去保存视图层的状态//super.onSaveInst...原创 2019-07-05 10:40:19 · 1144 阅读 · 1 评论 -
Android中javax annotation Nullable找不到的解决方案
在某些Android开源库中有时会遇到下面的引用找不到的问题:import javax.annotation.Nonnull;import javax.annotation.Nullable;其实Android实现了javax的类似注解,可以使用下面的引用替换:import android.support.annotation.NonNull;import android.support...原创 2019-07-05 10:26:01 · 6768 阅读 · 0 评论 -
android颜色透明度百分比
透明度对应16进度值如下:透明度16进制值100%FF99%FC98%FA97%F796%F595%F294%F093%ED92%EB91%E890%E689%E388%E087%DE86%DB85%D984%原创 2019-01-24 10:50:23 · 2120 阅读 · 0 评论 -
Android开发常见的问题
1、调用webview的页面应及时销毁,防止内存泄漏(具体如下):@Override&nbsp; &nbsp; protected void onDestroy() {&nbsp; &nbsp; &nbsp; &nbsp; try {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &原创 2019-01-24 09:35:41 · 172 阅读 · 1 评论 -
Android面试题(java部分)
1、面向对象的特征有哪些?封装、继承、多态和抽象。2、构造方法能否被重写和重载?构造方法不能被重写但是能被重载。3、”==”和equals方法究竟有什么区别?==和equals都可以比较地址。==是运算符,equals是方法,方法可以通过重写改变其行为,如String的equals就是比较字符串内容。4、GC是什么? 为什么要有GC?GC是垃圾收集的意思(Gabage ...原创 2019-01-26 19:10:48 · 975 阅读 · 1 评论 -
Android面试题(Android部分)
1、Activity生命周期?onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDetroy()2、activity、Service、BroadcastReceiver的作用Activity:Activity是Android程序与用户交互的窗口,是Android构造块中最...原创 2019-01-26 19:59:32 · 212 阅读 · 0 评论 -
如何用github生成依赖库
在Android项目中经常需要依赖使用别人开发的第三方依赖库,使开发更加方便。那我们如何将自己的项目制作依赖供他人使用呢,步骤如下:1、新建android项目,在项目中新建module,如图1所示。2、在module中书写自己的工具或者项目3、将自己的项目推送到github4.在github中找到对应的项目创建一个releases,并且公布出去5、打开网址https://jitpa...原创 2019-02-12 16:00:59 · 1074 阅读 · 0 评论 -
如何用github搭建博客
1、创建一个github账户,然后登陆账户创建一个新的repo。2、注意该repo的名字,必须保持格式.github.io,其中替换成你的github账户名,然后点击确定,完成仓库的创建。3、创建完成后使用git命令把仓库克隆到本地,例如输入下面的命令,git clone 仓库地址!4、在我们克隆的仓库文件夹中,新建一个html文件,在文件里面写入 “welcome to my blo...原创 2019-02-21 13:05:36 · 313 阅读 · 0 评论 -
ButterKnife8.4.0 onclick点击事件没反应
首先看看是否只添加了 implementation ‘com.jakewharton:butterknife:8.4.0’,而没有添加 annotationProcessor ‘com.jakewharton:butterknife-compiler:8.8.1’如果项目里moudle app 依赖着lirbrarycompile ‘com.jakewharton:butterknife:8...原创 2019-03-06 16:38:24 · 452 阅读 · 0 评论 -
解决Android studio连接不上真机问题
在Android开发过程中,需要使用真机进行测试时,由于诸多原因,我们无法连接真机那如何判断是USB驱动没有安装好,首先打开设备管理器,再选择其他设备,如果出现一个带感叹号的“ADB Interface”,则表示USB驱动没有安装好。解决办法如下:1、通过AndroidStudio的“Tools”→“Android”→“SDK Manager”,打开“Default Settings”对话框...转载 2019-03-04 11:16:26 · 6453 阅读 · 0 评论 -
Android自定义饱和度实现图片置灰
设置饱和度为黑白图的代码如下:ColorMatrix cm = new ColorMatrix();cm.setSaturation(0f); // 设置饱和度:0为纯黑白,饱和度为0;1为饱和度为100,即原图;ColorMatrixColorFilter grayColorFilter = new ColorMatrixColorFilter(cm);imageview.setColo...原创 2019-03-26 14:38:19 · 1070 阅读 · 1 评论 -
Android studio如何引用aar包
1、将目标aar文件,例如tanlibrary-1.0.0.aar文件,复制粘贴在工程的app/libs/目录下。2、在app目录下的build.gradle文件中添加以下代码:android { repositories { flatDir { dirs 'libs' } }}dependencies { ...原创 2019-04-21 20:49:21 · 2284 阅读 · 0 评论 -
Git使用教程
一、Git是什么Git 与CVS、Subversion 一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。Git 的速度很快,这对于诸如 Linux 内核这样的大项目来说自然很重要,Git 最为出色的是它的合并追踪(merge tracing)能力二、Git的配置Git官网下载地址:https://git-scm...转载 2019-05-07 15:21:11 · 101 阅读 · 0 评论 -
Android将library打包成jar文件或aar文件
打包jar新建一个Library,这个在studio里面很简单就可以做到。当逻辑写完之后,需要配置grade文件,代码如下:task makeJar(type: Copy) { //删除存在的 delete 'build/libs/mylibrary.jar' //设置拷贝的文件 from('build/intermediates/bundles/rele...原创 2019-05-07 19:16:03 · 461 阅读 · 0 评论 -
Android ScrollView 嵌套 RecyclerView或者ListView进入界面不在顶部
在Android开发过程中,我们有时会用ScrollView 嵌套 ListView或者RecyclerView,但当我们进入界面的时候看到的不是最顶部,而是ListView或者RecyclerView。出现问题原因:RecyclerView或者ListView从ScrollView中夺取了焦点,位置显示在焦点的位置去了,所以进去之后界面不在顶部,而是处于焦点位置。解决方法:方法1: 禁止...原创 2019-07-04 10:21:06 · 453 阅读 · 0 评论 -
使用Android Studio创建 Live Templates模板
1.Settings->LiveTemplates2.点击右侧加号添加模板,添加组或者单个模板3.比如,添加一个单例其中:abbrevlation:模板的缩写,写代码时写缩写就会提示出来description:模板注释template Text:最终写在编辑器上的代码。valuesvaluesvalues 用xxx代表生成代码后光标会停留在该位置例子:private ...原创 2019-01-26 17:44:07 · 344 阅读 · 0 评论