Android
文章平均质量分 51
飞翔的时光机
这个作者很懒,什么都没留下…
展开
-
MockResponseInterceptor 简化了 Android 中的 Retrofit API 响应模拟
【代码】MockResponseInterceptor 简化了 Android 中的 Retrofit API 响应模拟。原创 2023-06-27 18:00:56 · 391 阅读 · 0 评论 -
Android 保存图片到媒体中
保存图片到媒体中最新的有效版本 /** * 保存图片到媒体中 */ fun saveBitmapToMedia(context: Context, bm: Bitmap){ val calendar = Calendar.getInstance() val format = SimpleDateFormat("yyyy-MM-dd_HH_mm_ss", Locale.CHINA).format(calendar.time) v原创 2021-08-03 11:30:09 · 260 阅读 · 0 评论 -
Android切圆角的几种常见方式总结
Android切圆角的几种常见方式总结总结一下常用的方式设置backgroud Drawable 的 shape xml 实现自带控件: CardView 实现圆角利用 View 的 ViewOutlineProvider 实现圆角Glide 等1. 利用 Drawable 的 shape xml 实现<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.co原创 2021-07-09 15:34:41 · 1623 阅读 · 0 评论 -
SurfaceView 闪屏(黑一下问题)
SurfaceView 闪屏(黑一下问题)使用SurfaceView发现在surfaceCreated和surfaceDestroyed的时候,预览区域会闪烁一下,录屏下可以发现页面会先出现一个半黑的界面。查了下资料,因为SurfaceView的绘画是在setContentView之后的,SurfaceView因为不同于一般的view,它有自己良好的缓冲以及数据存取机制,系统对他有特殊处理。当surfaceview第一次在当前activity上添加的时候,系统会给WindowManager重新排布局,r原创 2021-03-29 17:24:05 · 2379 阅读 · 0 评论 -
TabLayout RecycleView, ViewPager 内部布局
原创 2020-12-09 18:08:42 · 168 阅读 · 0 评论 -
Android 使用 Kotlin 协程例子
Android 使用 Kotlin 协程例子协程是一种并发设计模式,您可以在 Android 平台上使用它来简化异步执行的代码,协程是我们在 Android 上进行异步编程的推荐解决方案轻量:您可以在单个线程上运行多个协程,因为协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作内存泄露更少:使用结构化并发机制在一个作用域内执行多个操作。内置取消支持:取消功能会自动通过正在运行的协程层次结构传播4.Jetpack 集成:许多 Jetpack 库都包含提供全面协程支持原创 2020-08-20 18:42:21 · 674 阅读 · 0 评论 -
配置Grade 依赖和搜索Maven库
配置Grade 依赖1. 搜索库版本打开Android Studio 右键选择 module setting点击 Library dependency 里的配置 要依赖的库。 但是这个搜索功能由于墙的关系,搜索很慢,很难得到结果。使用Google maven 仓库搜索: https://maven.google.com/解决AndroidStudio中gradle添加依赖包很慢的问题gradle会根据 build.gradle文件中的 repositories 获取到下载资源源原创 2020-08-20 17:34:14 · 785 阅读 · 0 评论 -
总结: Kotlin 委托简单介绍
Kotlin 委托类委托委托模式实现继承的一个很好的替代方式。委托模式使得我们可以用组合来替代继承,更进一步它还使我们可以模拟mixin 类(Flutter)这是官网的一个委托例子interface Base { fun print() fun printB()}class BaseImpl(val x: Int) : Base { override fun print() { print(x) } override fun printB() { println(x) }原创 2020-07-18 15:24:11 · 340 阅读 · 0 评论 -
总结:Activity和Fragment之间的数据传递
数据的传递是APP应用开发中一个很常见和关键的工作,这边主要是梳理了一些常见的数据传递方式Activity 和Activity之间传递数据Intent intent = new Intent(this,MainListActivity.class);// 可直接调用putXxx()方法 或 创建Bundle对象,完成参数传递 intent.putString(TAG,"data"); intent.putExtra(TAG,0);startActivity(intent);//如果需要页面的原创 2020-07-18 15:22:27 · 896 阅读 · 0 评论 -
Flutter 状态管理 实践记录
Flutter 状态管理 实践记录1. 背景Flutter里面最重要的应该就是:状态管理 刚开始做的一个问题,StatefulWidget的状态应该被谁管理?Widget本身?父Widget?还是其他对象?以下是管理状态的最常见的方法:Widget管理自己的状态。父Widget管理子Widget状态。混合管理(父Widget和子Widget都管理状态)。举个例子:比如 CheckBox 里面的数据到底是给谁管理比较方便官方的原则是:如果状态是用户数据,如复选框的选中状态、滑块的位置,原创 2020-06-04 10:44:23 · 256 阅读 · 0 评论 -
Flutter PageView/TabBarView等控件保存状态的问题解决方案
Flutter PageView/TabBarView等控件保存状态的问题解决方案背景PageView + BottomNavigationBar 或者 TabBarView + TabBar 的时候大家会发现当切换到另一页面的时候, 前一个页面就会被销毁, 再返回前一页时, 页面会被重建, 随之数据会重新加载, 控件会重新渲染 带来了极不好的用户体验, 跟原生的Pager 显示的效果不太一样。解决1. 官方推荐:AutomaticKeepAliveClientMixin由于TabBarView内原创 2020-06-03 15:06:45 · 1839 阅读 · 0 评论 -
Flutter 局部刷新/状态管理 全面总结
Flutter 局部刷新/ 状态管理在Flutter中,如果我们想要更新页面中的某个widget的状态的话,一般会使用setState方法重走build方法来刷新。//Flutter是描述性的(declarative), UI反映状态.UI = f(state)当页面布局复杂的时候,这样肯定是不行的。 这边梳理了下几种常见的方式,做个记录,方便将来选型总体分为两类:第一类,Dart 和 Flutter 内置支持1. setState.Flutter里面最重要的方式 setState,规模原创 2020-05-29 20:11:07 · 8012 阅读 · 0 评论 -
问题记录:Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM tar
问题今天编译的时候看到这个提示:Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target搜索了下解决方法也简单android { ... compileOptions { sourceCompatibility = 1.8 targetCompatibility = 1.8 } //这是关键 k原创 2020-05-22 12:41:23 · 502 阅读 · 0 评论 -
recycleVIew item 点击效果 问题:
背景Android SDK自带有 很多 布局,drawable, String ,style 等资源。在开发中有意识的使用可以加快开发速度,而且可以减少资源占用。复用 drawable资源recycleVIew 默认的分割线资源有这些:可以通过Android.R.drawable获取。。divider_horizontal_bright.9.pngdivider_horizontal_bright_opaque.9.pngdivider_horizontal_dark.9.pngdivider原创 2020-05-18 11:35:25 · 383 阅读 · 0 评论 -
好用的安卓模块化间通信- 接口方式调用
github : https://github.com/gybin02/ProtocolJet Protocol 安卓模块间 通信库业务模块间通常通过定义/实现java的interface完成业务逻辑,必然导致模块间存在代码层面的依赖。也导致编译期的工程依赖。事实上,业务模块间仅仅是逻辑上存在依赖,完全没必要产生实际的工程依赖。该组件提供了一种解藕模块间显式依赖的能力。方案对比定义请求...原创 2020-04-04 16:42:16 · 569 阅读 · 0 评论 -
算法面试 (主要分两大类 排序和查找)
算法面试 (主要分两大类 排序和查找)排序https://www.cnblogs.com/guoyaohua/p/8600214.html插入排序从第一个元素开始,该元素可以认为已经被排序;取出下一个元素,在已经排序的元素序列中从后向前扫描;如果该元素(已排序)大于新元素,将该元素移到下一位置;重复步骤3,直到找到已排序的元素小于或者等于新元素的位置;将新元素插入到该位置后;重...原创 2020-04-04 16:09:33 · 243 阅读 · 0 评论 -
2020高级安卓面试总结- 安卓基础篇
Viewed绘制过程,自定义ViewView绘制主要分为三步。分别是onMersure 计算View的尺寸大小,可能会触发多次MeasureSpecUNSPECIFIED 父容器不对子布局有任何限制,要多大给多大(如: scrollview,listView)EXACTLY 父容器已经测量出子布局大小AT_MOST 父窗口限定了一个最大值给子布局。onLayout ...原创 2020-04-04 16:07:38 · 1427 阅读 · 0 评论 -
PermissionKit 权限申请库 -- 一句代码帮你申请动态权限
PermissionKit 权限申请库用来快速方便实现 6.0+ 的权限授权,GitHub地址:https://github.com/gybin02/PermissionKit这个库可以节省不少代码量和时间流程检查是否拥有权限-> 有权限 -> 回调权限申请成功没有权限是否需要弹窗请求-> 不需要 -> 是否是被设置为永不提醒需要弹窗请求,监听是否点击确认...原创 2020-04-04 15:58:56 · 451 阅读 · 0 评论 -
Kotlin Array的toList和asList有何不同?
Kotlin Array类提供asList(),toList()和toMutableList()方法.前两个方法都返回一个List,并在Kotlin reference中描述如下:> asList()返回包装原始Array的List.> toList()返回一个List,其中包含[原始Array]的所有元素.这些方法似乎可以互换.这两种方法在实践中有何不同?最佳答案...原创 2020-01-10 10:11:17 · 2312 阅读 · 0 评论 -
Android7.0 和 Charles 的抓包 出现无法抓包unknown和证书无效
Android7.0 和 Charles 的抓包 关于android手机在mac版charles上抓不到包这个问题困扰了很久,查阅了很多资料,发现是android7.0系统安全策略问题。Charles抓包正常流程 1.在手机上配置证书 点击后:直接在手机浏览器输入: chls.pro/ssl ps:最好用UC浏览器 华为自带浏览器会下载一个pem文件,会直接在手机上无法安装2....原创 2018-04-16 14:28:13 · 1171 阅读 · 0 评论 -
Android Room,编译成功,倒是 build APK 失败提示: 无法访问:ActivityCompatApi23
项目需要数据库功能,试了下Android 新的数据库框架Room。在新建的Demo里面运行的好好的,但是 集成到我的项目里面确提示:无法访问:ActivityCompatApi23搜索了 一番,在stackOverFlow找到答案:https://stackoverflow.com/questions/46928223/cannot-access-activitycompatapi23原创 2018-01-24 17:23:11 · 7063 阅读 · 0 评论