爱代码、爱音乐、爱健身
目录 目录 前言 Android代码中涉及进程间通信的地方经常会使用Handler。 public class MainActivity extends AppCompatActivity { //可能引入内存泄漏的方法 p...
前言 最近写的项目越来越大,出现了64K问题,所以用了Multidex来突破64K方法数限制,然后为了优化编译速度在build.gradle文件中加入了如下代码 productFlavors { // Define separate dev and prod product flavors.
目录 前言 MVVM ( Model — View — ViewModel )最初是在2005年由微软提出的一个UI架构概念 。 相比MVP模式,MVVM将Presenter改为了 ViewModel,同时实现View和VievvModel的双向绑定。
前言 近期在做一个商城类项目,需要实现对一个订单里的多个商品分别评价的功能(类似于淘宝的评价),花费了一点时间把效果做了出来,并在这里分享出来也权当做了记录,图个日后使用方便。
目录 目录 前言 最近公司的项目需要实现类似于支付宝输入支付密码的功能,本来打算上网找一个别人写好的直接用,又怕直接用别人的出了问题不能够快速解决,索性就写了一个支付密码控件(GitHub传送门),在这里分享出来。
目录 原理 添加多套values和drawable文件,通过Android-skin-support框架动态的替换来实现切换主题的效果。
目录 什么是SnapHelper SnapHelper是Google 在 Android 24.2.0 的support 包中添加的对RecyclerView的拓展,结合RecyclerView使用,能很方便的做出一些炫酷的效果。
目录 什么是Palette Palette是调色板的意思它可以通过提取Bitmap中的颜色来优化界面的色彩搭配。 Palette的使用方法 导入依赖 dependencies { .
目录 定义和作用 AsyncTask是在Executor框架的基础上进行的封装,它实现将耗时任务移动到工作线程中进行,同时提供了方便的接口实现了工作线程和主线程的通信。
目录 定义 IntentService为Service的子类,它能够进行耗时任务。 原理 IntentService具有和Service一样的生命周期,同时提供了在后台线程中处理异步任务的机制,与HandlerThread类似,IntentService也是在一个后台线程中顺序执行所有任务,我们通过给Context.
利用Android中自带的CountDownTimer实现手机验证码倒计时 public class TimeCountUtil extends CountDownTimer { private static final int TIME_TA...
解决ViewPager嵌套Fragment页面白屏 viewPager.setOffscreenPageLimit(Fragment的数量);
目录 前言 众所周知如果想要在Android中执行耗时操作需要新建一个线程然后在该线程中实现,但是如果出现一种需要我们频繁进行耗时操作的业务,那我们再频繁的创建线程无疑会使性能降低,而Android SDK为我们提供了一个循环线程的框架刚好可以帮助我们解决这个问题,它就是HandlerThread。
目录 1.定义 Thread是Android中异步处理技术的基础,是执行任务的基本单位。 2.实现方法 ●继承Thread类并重写run()方法。
前言:这次带来的是使用RxPermissions+知乎图片选择器Matisse+图片压缩工具Luban实现图片选择的功能。 implementation 'com.
为什么需要异步处理技术 Android应用的开发要求我们正确处理主线程与子线程之间的关系,耗时操作应当放到子线程中,避免阻塞主线程,导致ANR。异步处理技术是提高应用性能解决主线程和子线程之间通讯问题的关键。
前言: 公司最近做的项目中含有查看每月收入支出的功能,而且是用饼状图来展示的,后来选择了hellocharts图表框架来实现这一效果,做完之后总结出来方便下次使用。
Android添加新建文件的默认头注释 File->Setting->File and Code Templates /** * * @ProjectName: ${PROJECT_NAME} * @Package: ...
什么是JsBridge JsBridge是js与Native之间进行通信的桥梁。 为什么要使用JsBridge Android4.2以下的addJavascriptInterface存在安全漏洞,虽然在Android4.
当我们下载别人的源码导入到自己的Android Studio中时可能出现各种红色警告,不管是Clean Project还是Rebuild Project都不管用,但是尴尬的是源码还能正常运行,那我们该如何解决呢? 解决方法 :点击左上角File——>Invalidate Caches/Restarts.
什么是MonkeyRunner monkeyrunner是Android sdk中自带的一个通过接收测试脚本(使用python语言编写的)来执行功能性测试的工具。
什么是Monkey Script Monkey Script是用来使Monkey执行特定操作的命令集合。 为什么要用MonkeyScript 由于Monkey的执行是随机的不能满足特定的需求,因此我们需要Monkey Script来使Monkey执行我们需要的特定操作。
●throttle:指定事件之间的间隔 //monkey -p 应用包名 --throttle 延迟时间(毫秒) 操作次数 monkey -p com.android.
什么是Monkey? Monkey是Android中自带的用来进行压力测试的一个命令行工具。 用Monkey进行App压力测试的结果有三种 正常 Crash :程序崩溃 ANR:程序无响应 Monkey简单测试步骤 1.手机与电脑进行USB连接,并在开发者选项中选中USB调试 2.确认手机与电脑连接:打开cmd命令行或者使用Android Studio的朋友可以打开Terminal视图,输入adb devices查看已连接的设备。
什么是什么是Parcelable Parcelable是Android sdk提供的用实现于数据序列化的一个接口,不同于Java中的基于磁盘或者网络的Serializable,Parcelable是基于内存的,由于内存的读写速度高于磁盘,因此在Android中跨进程对象传递一般使用Parcelable。
这次带来的是BottomSheetBehavior的简单使用,BottomSheetBehavior是Android Support Library23.2中引入的,它可以轻松实现底部动作条功能。
这次带来的是结合CoordinatorLayout、AppBarLayout、CollapsingToolbarLayout和FloatingActionButton打造炫酷的视觉差效果。
这次实现标题栏随着上滑下滑显示隐藏 实现这个效果需要,Support Design库中的CoordinatorLayout和AppBarLayout进行配合才行。
今天学习了一个实现圆形扩展Activity切换动画效果 工具类代码 public class CircularAnimUtil { public static final long PERFECT_MILLS = 618; public static final int MINI_RADIUS = 0; /** * 向四周伸张,直到完成显示。
FloatingActionButton是Support Design Library库中引入的一个新的控件,外观时尚新颖,受到很多开发者的好评。 如何使用FloatingActionButton 使用FloatingActionButton其实非常简单只需要在布局文件中引入控件即可,不过它的属性有点多,我们先来介绍一下它的属性。
Toolbar(android.support.v7.widget.Toolbar)是Android5.0之后出现的用来取代ActionBar的一个控件。
在开发过程中可能会有将状态栏设置成白底黑字的样式,但是Android系统只有在4.4之上才可以修改状态栏颜色,想要设置状态栏为黑字,只有在Android6.0以上系统或者小米的MIUI V6以上版本或者,魅族的Flyme4.0以上版本才可以设置。
TabLayout的自定义,主要是通过setCustomView方法来添加自定义布局实现。 自定义TabLayout的实现主要包含以下几个步骤 ●创建自定义布局(这里我加了一个动画控件,可以替换成其他控件) ...
什么是TabLayout TabLayout是Support Design Library库中的一个控件,它是用来进行分组的,同时也可以作为ViewPager的指示器 TabLayout的简单使用 ●tab创建 ◇xml布局创建 ...
TextInputLayout是什么 TextInputLayout主要是作为EditText的容器,从而为EditText生成一个浮动的Label,当用户点击EditText的时候,EditText中的hint字符串会自动移到EditText的左上角。
Snackbar是什么 Snackbar是Design Support Library库中的一个控件它是用来替代Toast的一个全新的控件,Snackbar与Toast最大的区别是Snackbar支持点击和滑动和滑动消失,如果用户没有进行操作它也会在到达指定时间后自动消失。
一.Support Annotation Library能做什么 Support Annotation Library包含一系列的元注解,能够帮助开发者在编译期间发现可能存在的Bug,另外Android Studio本身就支持Annotation Library所以开发者无需再次添加依赖。
为什么使用百分比布局 由于Android系统的碎片化发展导致了市面上多种分辨率、多种屏幕密度共存,这对我们的屏幕适配增加了不少的难度,在布局方面我们都知道可以通过LinearLayout的layout_weight属性来进行适配,但是在某些情况下我们要向用这种方法进行适配就必须进行多层布局嵌套,而这则会导致布局文件复杂,增加渲染层次,致使性能下降。
一.概念 补间动画是指开发者无需定义动画过程中的每一帧,只需要定义动画的开始和结束两个关键帧,并指定动画变化的时间和方式等,然后交由Android系统进行计算,通过在这两个关键帧之间插入渐变值来实现平滑过渡,从而对View的内容完成一系列的图形变换来实现动画效果,主要包括四种基本效果:透明变化Alpha、大小变化Scale、位移变化Translate、以及旋转变化Route,这四种效果可以动态组合,从而实现复杂灵活的动画。
一.概念 帧动画也叫Drawable Animation,是最简单最直观的动画类型,他利用人眼的视觉暂留效应——也就是光对视网膜所产生的视觉在光停止作用后,仍会保留一段时间的现象。
在开发过程中会经常遇到View与ViewGroup嵌套的问题,如ViewPager嵌套Fragment,而Fragment中又需要实现一个广告滑动,此时广告滑动就会与ViewPager的滑动事件产生冲突,而深入理解Android触摸事件的传递机制则是解决问题的关键。
步骤(分为两步) 一.设置通知栏样式(如果不设置则默认使用自带的),这里官方给了三种方式: 1.基础(定制声音、震动、闪灯等 Notification 样式): BasicPushNotificationBuilder builder = new BasicPushNotificationBuilder(MainActivity.
分享两个学习Git的网站 1. 廖雪峰的官方网站https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 image 2.
一. 概述 image 开发者集成 JPush Android SDK 到其应用里,JPush Android SDK 作为 Android Service 长期运行在后台为APP提供永久在线的能力并保持与JPush Cloud 的长连接,当开发者想要及时地推送消息到达 App 时,只需要调用 JPush API 推送,或者使用其他方便的智能推送工具,即可轻松与用户交流。
这次介绍下如何使用Retrofit+rxjava上传图片和文字 接口的写法 public interface MarketApiService { @Multipart//这里一定要加这个 @POST("market/addNewOrd...
DecimalFormat df = new DecimalFormat("0.00");//格式化小数 String money = df.format(v);//返回的是String类型
Retrofit+RxJava联网 public class RetrofitUtils { private static final String BASE_URL="http:www.
通过设置过滤器(Filter)实现EditText输入金额(小数点后两位)。 布局文件 java代码 editText_price.setFilters(new InputFilter[]{new InputFilter() { @Ov...
最近几天开发了一个关于记录书籍的小程序,业余时间从零基础边学边做总共用了5天时间,接下来我将演示如何快速开发一个小程序。 扫码看效果 一.首先需要先去微信公众平台注册一个小程序账号 二.
本章将告诉你如何创建自己的第三方库 创建库 准备: 1. github账号 2. Android Studio 3. git版本控制工具 一,打开AndroidStudio,File->New->New Project 打...