自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (10)
  • 收藏
  • 关注

原创 Android UI适配方案

大纲使用dp而不是px尽量使用自动适配布局,而不要指定分辨率使用宽高限定符values-1080x1920,以1080P为基准计算每种常见分辨率对应的尺寸。需要尽可能全的添加各种设备的分辨率(有工具)容错性不足,如果设备分辨率不能精确匹配对应限定符,会默认使用统一默认的dimens第三方自动适配UI框架原理:自定义RelativeLayout,在onMeasure中对控件分辨率做变换第三方框架,维护性很成问题一些自定义View,处理比较麻烦最小宽度限定符,类似宽高限定符

2021-11-04 16:01:32 780

原创 ViewPager2的使用

Jetpack与ViewPager2Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。2018年Google推出了Jetpack架构组件,旨在帮助开发者轻松构建更稳定、更健壮、以及更可维护的应用程序。Jetpack为之前混乱的Android开发生态提供了一种更规范的解决方案,可以说是Google为了规范Android开发生态迈进的一大步。Google对于Jetpack也是

2021-10-27 17:07:23 4585 1

原创 Lifecycle-生命周期感知型组件

简介Lifecycle是Google推荐的架构组件之一.生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。通过使用生命周期感知型组件,您可以将依赖组件的代码从生命周期方法移入组件本身中。我们来描述一种业务场景来帮助我们更好的理解上面这段话的意义。当我们的Activity中使用了自定义的播放器组件时,我们通常需要在Activity的onResume和onPause中

2021-10-26 17:14:43 174

原创 Lottie——强大的动画渲染框架

概述Airbnb开源的强大的动画框架,适用于Android,IOS,React Native和Web。可以使用AE导出的JSON格式的动画,并解析为原生动画效果。特点:跨平台 —— 一份动画效果,多平台通用。多种方式导入动画效果 —— 可从assets,sdcard,网络加载动画资源,支持动态更新。原生实现之前在Android中要实现相对复杂的动画效果一般有三种方式:1.帧动画,在程序中添加N张动画图片,通过帧动画实现动画效果,缺点是图片太多导致apk过大。2.Gif,使用动画gif实现动画

2021-10-26 17:08:32 377

原创 SparseArray和SparseArrayCompat

特性Android 4.4之后提供的数据结构类型,为了兼容Android低版本同时提供了SparseArrayCompat,实际是一个东西。只支持使用int - Object的方式存储数据,使用数组结构存储数据。通过二分查找法优化了查找效率,相比HashMap最高提高50%的效率。不适合存储大量数据,因为要使用二分查找法所有数组中元素已排序,在数据量大时插入和移除元素效率较低,适合存储几百个元素的场景。优化缓存机制,移除元素时并不立即删除数组中的数据,而是将元素标记为删除,如果有元素插入时可以直

2021-10-19 11:28:30 857

原创 正则表达式

简介正则表达式是由普通字符(字母、数字和下划线)和特殊符号(元字符)组成的,用来描述匹配一个字符串集合的模式。通常用来检索、替换和分割那些符合模式的字符串。特点正则表达式的特点是:灵活性、逻辑性和功能性非常强;可以迅速地用极简单的方式达到字符串的复杂控制。对于刚接触的人来说,比较晦涩难懂。由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则

2021-10-19 11:26:48 255

原创 Android UI性能优化——ViewStub和Merge的使用

ViewStub的使用简介ViewStub 是一种没有任何维度的轻量型视图,它不会绘制任何内容或参与布局。ViewStub是一种没有大小,不占用布局的View。直到当调用 inflate() 方法或者可见性变为VISIBLE时,才会将指定的布局加载到父布局中。ViewStub加载完指定布局之后会被移除,不再占用空间。(所以 inflate() 方法只能调用一次 )因为这些特性V...

2019-12-27 16:51:03 678 1

原创 TvTabLayout——封装一个Android TV端易用的TabLayout

概述Tab + ViewPager是我们常用的一种Android端UI架构,Android系统提供了TabLayout等控件用于实现与ViewPager配套使用问题,但是原生的TabLayout使用在Android TV端并不友好,需要添加复杂的逻辑解决按键与焦点问题,本文旨在封装一个简单的TvTabLayout控件,方便实现Android TV端的常用功能。TvTabLayout简介...

2019-12-27 16:49:35 1845

原创 Android Fragment + ViewPager的懒加载实现

概述Android日常开发中除了四个组件之外,还有一种使用频率很高的组件——Fragment。在使用时我们通常需要在Fragment的各种生命周期方法中处理数据加载、页面刷新和资源释放等逻辑操作。但是当Fragment遇上了ViewPager,事情就变得有点不一样了。Fragment的生命周期变得不再那么可控,当显示Fragment A时,相邻的Fragment B的一些生命周期方法也会触发。...

2019-12-09 13:47:32 254

原创 Android动画篇——Android 5.0揭露动画

Reveal Effect是Android 5.0中添加的新的动画效果,是一种类似于水波纹效果的从一个点向周围扩散或者从四周向一个点集中的动画效果。仅在支持Android 5.0及更高版本。使用使用及其简单,Android API中提供了一个ViewAnimationUtils类用于实现Reveal效果,此类仅有一个静态方法createCircularReveal返回了一个Animator对...

2019-08-28 17:35:17 290

原创 Android动画篇——Android 5.0触摸反馈动画

RippleDrawable是Android 5.0之后添加了一种触摸反馈动画,在控件被触摸时触发水波纹效果。此效果只在Android 5.0以上设备上生效。系统自带效果Android 5.0之后Button默认自带Ripple效果,同时系统提供了2个默认的Ripple效果。//有边界android:background="?android:attr/selectableItemBackg...

2019-08-28 17:33:38 384

原创 Android——页面Loading控件封装

概述在Android开发过程中通常在有网络请求的页面,需要设计加载中、加载失败等UI效果,来提升用户体验。本文就此需求实现了一个简单的LoadingLayout控件,可以比较方便的实现加载中、加载失败、网络错误等UI效果,并提供失败点击重试等操作。实现思路常用一般有以下几种请求状态:LOADING_STATE 加载中状态LOAD_SUCCESS_STATE 加载成功状态LOAD_F...

2019-07-03 11:40:16 3673

原创 Android动画篇——ViewPropertyAnimator

之前我们介绍了PropertyAnimator,这一篇是之前文章的延伸。之前我们说过PropertyAnimator并不是针对View进行设计的动画类,而是为了解决对任意对象的指定属性值进行连续变换而出现的。而ViewPropertyAnimator出现的意义恰恰在于他是View而生的,他解决了View在使用属性动画时步骤繁琐,效率低下(使用PropertyAnimator为View设置多种动画,...

2019-07-02 17:33:29 556

原创 android动画篇——仿小米计算器切换动画效果

实现思路此效果实现用到了:LayoutTransition和ObjectAnimator的相关知识思路:当点击切换按钮时顶部ViewGroup和左侧ViewGroup可见性设置为Gone,并自动开始执行LayoutTransition的DISAPPEARING动画,同时中间的数字键盘区执行放大动画效果,反之同理。代码实现/*** 实现小米计算器科学计算器与普通计算器的切换动画效果*/...

2019-07-02 17:32:36 452

原创 Android动画篇——Interpolator展示控件实现

上几篇我们讲解了Interpolator的作用和自定义Interpolator的实现方式,这一篇我们通过自定义一个Interpolator曲线展示控件来更加深入的了解Interpolator的原理。原理之前我们已经讲过Interpolator的作用原理,我们再来回忆一下:动画在执行过程中会不断地调用Interpolator的getInterpolation方法并传入一个当前动画执行时间进度的...

2019-07-02 17:29:15 280

原创 Android动画篇——Property Animation(属性动画)

OverViewThe property animation system is a robust framework that allows you to animate almost anything. You can define an animation to change any object property over time, regardless of whether it ...

2019-07-02 17:27:06 469

原创 Android动画篇——Drawable Animation(帧动画)

OverViewAn object used to create frame-by-frame animations, defined by a series of Drawable objects, which can be used as a View object’s background.定义多帧画面连续播放构成了帧动画。帧动画的应用场景不多,主要用在过于复杂而无法用代码实现的gi...

2019-04-02 19:39:12 566

原创 Android动画篇——View Animation(视图动画)

对于Android开发人员从初级向高级的进阶过程中,动画无疑是必不可少的一块知识点。在合适的场景合理的使用动画效果,可以极大的提高app的系统体验流畅度,是优化交互和提高用户体验的一个重要的方面。你可能很早就接触过Android动画,甚至能说出动画分为:View Animation、Drawable Animation和Property Animation等类型,但是你未必能详细说出每种动画的适...

2019-04-02 19:38:02 895

原创 Android注解库——support-annotations

正式开始介绍之前,我们先来了解下注解是到底是什么?注解注解是一种可以添加到java代码中。类、方法、变量、参数、包都可以被注解,注解对被注解的代码没有直接影响。注解之所以起作用是因为在代码编译时会根据相应的注解做对应的处理。定义注解注解使用关键字@interface进行定义的。@Documented@Retention(RetentionPolicy.CLASS)@Target({...

2019-03-13 18:44:07 729

原创 Android第三方log库——Logger

Log在Android日常开发中的重要性不言而喻,出现bug后的第一件事基本都是先看log。但是在使用Android原生Log类时,通常需要先定义一个静态TAG,然后Log.d(TAG,"message");,为了解决在项目上线时去掉log的需求,我们通常会再封装一个LogUtil类来实现这个功能,未免有些繁琐。既然有现成的轮子可以更高效、更简洁、更美观的解决log的问题,那我们何乐而不为呢。O...

2019-03-12 16:39:36 1351

原创 Android注入框架——ButterKine

OverViewButterKine是一款开源的Android视图的字段和方法绑定快速注解框架,应用十分广泛。可以避免重复使用findViewById,很大程度上简化代码,提高开发效率。Android Studio配置在build.gradle中添加配置,文章是基于8.8.1版本进行配置与说明的,不同版本之间使用方法稍有差异,具体情况可查看GitHub_ButterKine项目提交记录与说明...

2019-03-05 15:43:04 511

原创 Android MVP设计模式总结

MVP设计模式从提出至今也有不短的时间了,大家应该或多或少使用过MVP模式开发项目,或者至少听说过MVP设计模式,不同的人对其有不同的理解,今天就来说说我所理解的MVP设计模式。MVC说起MVP就不得不提MVC设计模式,MVP模式是从MVC模式中演化出来的。MVC包含以下三种组件:控制器(Controller)- 负责转发请求,对请求进行处理。视图(View) - 界面设计人员进行图形...

2019-02-14 11:36:48 251

原创 ConstraintLayout详解

声明:本篇博客是基于Google官方文档ConstraintLayout,按照我的理解总结而来。(如果有条件、英文还不错的,Google官方推出的控件可以直接看官方API,都有比较详细的介绍)ConstraintLayout 约束布局是在16年Google I/O大会上提出的新的布局方式。相较于之前的布局,使用ConstraintLayout可以极大的减少View嵌套层级,优化系统渲染性能。同时...

2018-12-25 14:18:45 893

转载 APK反编译

学习和开发Android应用有一段时间了,今天写一篇博客总结一下Android的apk文件反编译。我们知道,Android应用开发完成之后,我们最终都会将应用打包成一个apk文件,然后让用户通过手机或...

2018-09-11 09:24:22 197

原创 使用ActivityLifecycleCallbacks管理Activity

Android在API14之后添加了用于监听应用Activity生命周期的回调接口ActivityLifecycleCallbacks,使用时需要在Application中进行注册。 可以看到ActivityLifecycleCallbacks中的方法跟Activity生命周期方法基本是一致的。ActivityLifecycleCallbacks的注册与取消注册public cl...

2018-08-28 10:15:26 868

原创 Android中常用的加密算法——RSA加密

在上一遍Android中常用的加密算法——AES加密中我们介绍了对称加密和非对称加密,对称加密由于加密和解密使用同一个秘钥因此安全性与非对称加密相比要低得多。这一篇我们就来介绍一种被广泛应用的非对称加密——RSA加密。RSA加密算法RSA是一种应用十分广泛的非对称加密算法,在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔...

2018-08-24 17:21:07 858

原创 Android中常用的加密算法——AES加密

上一篇博客介绍了MD5加密算法,MD5加密不可逆的特性决定了在很多场景下并不适用。如在某些需要对加密后的密文进行解密使之可读的场景下,就需要使用可逆加密算法实现,常用的可逆加密算法有:AES对称加密算法RSA非对称加密算法对称与非对称对称加密 对称密钥加密(英语:Symmetric-key algorithm)又称为对称加密、私钥加密、共享密钥加密,是密码学中的一类加密算...

2018-08-15 11:29:35 3373

原创 Android中常用的加密算法——MD5加密

转载请注明出处:https://blog.csdn.net/Rookie_xue_IT/article/details/81341637数据加密的基本过程就是对原来为明文的文件或数据按某种加密算法进行处理,使其成为一段不可读的代码,通常称为“密文”,通过这种途径来达到保护原始数据的目的。通过解密方法或秘钥,经过解密过程,可以将密文还原成可读的原文。MD5加密md5加密是我们常用的一种加...

2018-08-02 14:05:25 9729

ViewPager+Fragment+RadioGroup 实现仿微信界面

用ViewPager + RadioGroup实现的仿微信界面

2016-01-22

gson 2.3 jar包

Gson 2.3 资源包,包括gson-2.3 .jar gson-2.3 doc.jar gson-2.3 resource.jar

2015-12-17

Android Volley演示Demo 图片、数据加载

非常全的Volley Demo 包括StringRequest JsonObjectRequest 的GET和Post方式访问网络数据,图片加载的ImageRequest、ImageLoader和NetWorkImageView方式。。

2015-11-30

Android Popupwindow

Popupwindow的简单实现 主要是储存代码的作用。

2015-11-20

Android Dialog各种实现

各种Android Dialog的实现 包括系统的6中dialog和自定义dialog

2015-11-20

Android动画Demo 属性动画

很全的Android动画的Demo TweenAnimation DrawableAnimation PropertyAnimation都有很详细的实现

2015-11-09

Android 卫星菜单 简单实现

用属性动画的方式,超级简单的实现炫酷的卫星菜单效果

2015-09-15

ZxingDemo 二维码

简化后的ZxingDemo 使用zxing的api,实现二维码识别(会自动对焦)

2015-09-14

Android的各种Dialog的实现

将Android中各种Dialog集合了一下,希望对新手Dialog的学习有所帮助

2015-07-31

C#画板程序

GDI+ 实现简单的画板功能 铅笔 橡皮 矩形 椭圆 保存 打开等

2013-11-13

空空如也

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

TA关注的人

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