Android开发
文章平均质量分 77
阿华-vitor
不断超越自我,快乐生活!
展开
-
RelativeLayout实现原理
的实现原理涉及到测量所有子视图,然后根据它们之间的相对位置规则来确定每个子视图的最终位置。这个过程需要仔细解析每个子视图的对象中的规则,并将这些规则应用于子视图的测量和布局过程。通过这种方式,能够灵活地组织子视图,并提供丰富的布局选项。原创 2024-07-18 22:48:51 · 283 阅读 · 0 评论 -
FrameLayout实现原理分析
的实现相对简单,它主要负责将子视图按照添加顺序堆叠在一起,后添加的子视图会覆盖先前的子视图。在测量和布局过程中,依赖于子视图自身的测量逻辑和中定义的属性来确定子视图的最终位置和大小。原创 2024-07-18 22:45:46 · 383 阅读 · 0 评论 -
LinearLayout实现原理分析
的实现原理主要集中在如何测量和布局其子视图,以满足指定的布局方向和权重响应。通过理解和onLayout()方法,以及子视图测量规格的生成,可以更好地掌握的内部工作原理。原创 2024-07-17 21:18:35 · 693 阅读 · 0 评论 -
Android 14新特性:选择性照片和视频访问授权
Android 14 引入了选择性照片和视频访问授权的新特性,这是一项旨在增强用户隐私和数据安全的重要更新。在之前的 Android 版本中,应用程序请求访问设备上的照片和视频时,通常会要求完全访问权限,这意味着应用可以访问用户图库中的所有照片和视频。然而,这种全盘访问可能不是所有用户都乐意给予的,特别是对于那些只需要访问特定照片或视频的应用。原创 2024-07-17 21:07:54 · 913 阅读 · 0 评论 -
GreenDao实现原理
接下来,定义User实体类,使用 GreenDao 的注解进行标注:Java267@Entity1317 }1821 }2225 }2629 }3033 }3437 }3841 }4248 }4952 }53}原创 2024-07-15 21:52:53 · 946 阅读 · 0 评论 -
dagger2实现原理
首先,我们定义 AppComponent 和 AppModule。Java6}79@Module15 }16}这里,@Component注解定义了一个组件,并指定了模块。@Module注解定义了一个模块,@Provides注解则指定了如何提供 MyService 实例。原创 2024-07-15 21:47:10 · 963 阅读 · 0 评论 -
retrofit实现原理
开发者需要定义一个接口,其中包含带有注解的方法,比如。原创 2024-07-11 23:21:30 · 480 阅读 · 0 评论 -
Okhttp实现原理
OkHttp是一个高效的 HTTP 客户端库,广泛应用于 Android 和 Java 应用中。它提供了简洁的 API,支持多种协议,如 HTTP/1.x 和 HTTP/2,并且内置了缓存和重试机制。下面是结合源码分析的OkHttp。原创 2024-07-11 23:16:07 · 1190 阅读 · 0 评论 -
Rxjava实现原理
RxJava(Reactive Extensions for Java)是一个响应式编程库,它提供了一种声明式的异步数据流编程模型,基于观察者模式和响应式编程原则。RxJava允许开发者以声明式的方式编写非阻塞的、异步的数据处理代码,非常适合处理事件流、网络请求、数据库操作等场景。下面是RxJava。原创 2024-07-10 21:05:01 · 582 阅读 · 0 评论 -
EventBus原理分析
EventBus是一个流行的事件发布/订阅框架,主要用于简化 Android 应用中不同组件之间的通信。它的设计基于观察者模式,可以有效地减少组件间的耦合性,使得代码更加模块化和可维护。下面是EventBus。原创 2024-07-10 21:01:07 · 751 阅读 · 0 评论 -
自定义输入车牌号键盘
1.首先在res目录下新建文件夹xml,并在xml文件夹下创建3个文件,分别配置省、市、车牌号信息(1)province_abbreviation.xml<?xml version="1.0" encoding="utf-8"?><Keyboard xmlns:android="http://schemas.android.com/apk/res/android" an...原创 2018-03-16 14:06:25 · 2510 阅读 · 0 评论 -
集成PDF.js,然后再在WebView上加载实现查看pdf文件
一、背景:公司项目有个查看电子发票的功能,发票是pdf文件的,于是开始找方案,有个第三方库,效果不错,兼容性也好,github地址:https://github.com/barteksc/AndroidPdfViewer,但嵌入到项目里app一下增加了15M左右,实在有点难以接受,于是就尝试用js方式实现,经实践可行,包增加4M左右。二、实现:public class WebViewA原创 2018-02-01 20:04:58 · 3612 阅读 · 0 评论 -
GreenDao3.0以上数据库升级
一、思路:创建临时表-->删除原表-->创建新表-->复制临时表数据到新表并删除临时表;这样数据库表的更新就完成了二、步骤:1.准备工具类:MigrationHelper:public class MigrationHelper { public static boolean DEBUG = false; private static String TAG原创 2018-02-01 19:46:05 · 282 阅读 · 0 评论 -
Androidstudio中将library生成为arr文件
1.jar、library、aar区别 jar:无法包含资源文件 library:可以包含资源文件 但是引入显得比较臃肿复杂 aar:可包含资源文件2.生成步骤 (1).新建或者导入Library。 (2).生成(根据需要生成) a.生成debug版本的 一般直接会在library目录下的build/output原创 2018-01-21 16:07:59 · 410 阅读 · 0 评论 -
Android开发常用框架
1.设置状态栏颜色:(1)status-bar-compat:地址:https://github.com/msdx/status-bar-compat2.时间选择器:(1)TimePickerDialog地址:https://github.com/JZXiang/TimePickerDialog3.动态权限:(1)easypermissions地址:https://原创 2018-01-21 16:00:45 · 268 阅读 · 0 评论 -
App版本更新兼容7.0
最近在做App版本更新这块的功能,以前也做过,为节省时间,提高开发效率,第一反应就是把之前的代码找出来直接用。三下五除二就搞定了,直接打个包给到测试!果然,一切都太顺利了,只见测试胸有成竹的走过来,说道:你这个版本更新有问题,没法安装!心里咯噔一下,怎么可能,我自己都测试OK的!立马反应过来,那估计是系统问题吧,后来确认,人家测试直接用的7.0的手机测试的。唉,好吧,那就改呗! 1原创 2017-08-15 17:17:50 · 811 阅读 · 0 评论 -
实现一个简单的计时器
项目开发过程中经常会遇到这样的需求:让用户输入手机号,点击获取验证码,然后开始倒计时。所以就写了一个简单的计时器。1.先看效果: 2.实现思路:定义一个类CountDownTimerImpl继承自CountDownTimer类, 重写父类的onTick()与onFinish()方法,分别表示开始计时与计时结束。开始计时 改变控件状 态,计时结束恢复原创 2017-08-16 15:08:26 · 639 阅读 · 0 评论 -
防止用户快速点击方案
测试人员突然跑过来跟我讲,快速点击按钮时,一直在发送请求,这样浪费用户流量。我心想,这都让你发现了?瞧他那眼神,似乎在说:小样,哥会看后台日志,想忽悠我,没门!我擦,看来不能偷这个懒了,那就解决吧!方法也挺多,我就说下我的方法: public class NoFastClickUtils { private static long lastClickTime = 0;//原创 2017-08-15 15:42:43 · 376 阅读 · 0 评论 -
自定义万能对话框
对话框在项目中是必不可少的,不想用系统的?那就只能自定义一个了。 1.功能:支持自定义动画效果,底部弹出,动态改变控件的文本内容及图标 2.使用: mAlertDialog=new AlertDialog.Builder(this).setContentView(R.layout.dialog_test) // .from原创 2017-08-15 16:10:01 · 321 阅读 · 0 评论 -
工作中遇到关于WebView的效果
对在项目中使用到的WebView做个整理,主要涉及加载进度条、下位效果、及加载html字符串。 1.加载页面,比较常见的是加载一个链接,我在项目里是要加载html,直接上代码: (1)加载链接,比较简单,一行代码就ok: mWebview.loadUrl(content);(2)加载html String encoding =原创 2017-08-15 15:16:00 · 288 阅读 · 0 评论 -
Android机型适配
一、简介1.Android平台现状:碎片化严重:设备繁多、品牌众多、版本各异,芯片、摄像头、分辨率不统一等等。为了保证app在大多数Android设备上有良好的显示的效果就必须要对机型进行适配。2.适配思路:(1)语言适配(2)屏幕适配(尺寸、方向切换)(3)版本适配(SDK版本)二、基本概念介绍1.屏幕尺寸屏幕尺寸屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英原创 2017-08-25 14:33:44 · 1086 阅读 · 0 评论 -
WebView跳转H5页面后无法交互问题
开发中遇到跳转H5页面后,点击H5页面没有反应,进行如下设置即可: private void setWebVew(WebView webView) { WebSettings settings = webView.getSettings();//获得浏览器设置 settings.setJavaScriptEnabled(true); //支持js原创 2017-09-16 16:24:07 · 2738 阅读 · 0 评论 -
SwipeRefreshLayout下拉刷新与下拉控件冲突解决
1.SwipeRefreshLayout与ExpandableListView下拉冲突解决:expandableListView.setOnScrollListener(new XExpandListView.OnXScrollListener() { @Override public void onXScrolling(View view) {原创 2017-12-15 15:18:21 · 905 阅读 · 0 评论