自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 Activity隐式启动

action的匹配规则action在Intent-filter中可以设置多条intent中的action和intent-filter中的action必须完全一样时(包括大小写)才算匹配成功intent中的action只要与intent-filter其中的一条匹配成功即可intent中必须指定action否则匹配失败且intent中action最多只有一条<activity an...

2019-12-14 20:45:02 264

原创 Activity的启动模式

standard标准模式,这是系统的默认模式每次启动一个Activity都会重新创建一个新的实例,不管这个实例是否存在在这种模式下,谁启动了这个Activity那么这个Activity就运行在启动它的那个Activity所在的栈中需要注意:当我们使用ApplicationContext去启动standard模式的Activity的时候会报错。因为standard模式的Activity默...

2019-12-14 16:57:47 267

原创 View事件分发机制

View的Touch事件传递dispatchTouchEvent用来进行事件的分发。如果事件能够传递给当前View,那么此方法一定会被调用,返回结果受当前View的onTouchEvent和下级的dispatchTouchEvent方法的影响,表示是否消耗当前事件。onInterceptTouchEvent用来判断是否拦截某个事件,如果当前View拦截了某个事件,那么在同一个事件序...

2019-11-07 22:39:54 209

原创 Android App启动优化

App启动方式冷启动:指APP在手机启动后第一次运行,或者APP进程被kill掉后在再次启动。温启动:App进程存在,当时Activity可能因为内存不足被回收。这时候启动App不需要重新创建进程,但是Activity的onCrate还是需要重新执行的。热启动:App进程存在,并且Activity对象仍然存在内存中没有被回收。可以重复避免对象初始化,布局解析绘制。查看启动时间com....

2019-11-06 17:18:18 265

原创 Kotlin——02.类和对象

类的定义Kotlin 类可以包含:构造函数,初始化代码块、函数、属性、内部类、对象声明。Kotlin 中使用关键字 class 声明类,后面紧跟类名:class Person{ // 类名为 Person // 大括号内是类体构成}可以在类中定义成员函数:class Person { fun eat() { //成员函数 println("吃饭"...

2019-11-05 22:25:47 179 1

转载 自定义view——01.基础

自定义view实现方式类型定义自定义组合控件多个控件组合成为一个新的控件,方便多处复用继承系统View控件继承自TextView等系统控件,在系统控件的基础功能上进行扩展继承View不复用系统控件逻辑,继承View进行功能定义继承系统ViewGroup继承自LinearLayout等系统控件,在系统控件的基础功能上进行扩展继承ViewViewG...

2019-11-04 16:22:09 158

原创 懒加载Fragment

为什么要使用懒加载比如TabLayout+ViewPager这种模式,普通加载会请求所有页面的数据并绘制,这样对流量,性能都造成一定的浪费。使用懒加载可以优化加载网络数据的时机,做到在需要时加载,不需要时不加载。实现思路由于显示fragment的时候,存在viewpager的预加载机制,且左右相邻的fragment都会回调setUserVisibleHint这个方法,然后我们希望在进行加载数...

2019-11-04 11:15:44 160

原创 Bitmap

1. Bitmap详解Bitmap位图包括像素以及长、宽、颜色等描述信息。长宽和像素位数是用来描述图片的,可以通过这些信息计算出图片的像素占用内存的大小。位图可以理解为一个画架,把图放到上面然后可以对图片做一系列的处理。位图文件图像显示效果好,但是非压缩格式,需要占用较大的存储空间。Config表示图片像素类型ARGB_8888ARGB_4444RGB_565ALPHA_8...

2019-11-04 11:06:22 204

原创 Sevice详解

Service是什么服务是Android中实现程序后台运行的解决方案,他非常适合是去执行那些不需要和用户交互而且还要长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务仍然能够保持独立运行。不过需要注意的是,服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。当某个应用程序被杀掉时,所有依赖该进程的服务也会停止运行。...

2019-11-04 08:16:33 1384

原创 android图片滤镜功能实现

float mHue = 0.0f; float mSaturation = 1f; float mLum = 1f; float MID_VALUE; Bitmap oriBitmap,newBitmap; MID_VALUE = barHue.getMax() * 1.0F / 2; oriBitmap = BitmapFactory....

2019-11-01 22:56:38 994

原创 Retrofit——01.入门

Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装使用步骤添加Retrofit库的依赖:implementation 'com.squareup.retrofit2:retrofit:2.5.0'implementation 'com.squareup.retrofit...

2019-11-01 22:55:06 273

原创 RxJava——3.变换操作符

Map()作用对被观察者发送的每1个事件都通过指定的函数处理,从而变换成另外一种事件应用场景数据类型转换 // 采用RxJava基于事件流的链式操作 Observable.create(new ObservableOnSubscribe<Integer>() { // 1. 被观察者发送事件 = 参数为整型 = 1、2、3 ...

2019-11-01 07:37:37 117

原创 RxJava——2.创建操作符

just()作用:快速创建1个被观察者对象(Observable)发送事件的特点:直接发送传入的事件应用场景快速创建 被观察者对象(Observable) & 发送10个以下事件Observable.just(1,2,3,4).subscribe(new Observer<Integer>() { @Override ...

2019-11-01 07:37:16 117

原创 RxJava——1.入门

定义: RxJava是基于事件流,实现异步操作的库。作用:类似AsyncTask,Handler特点:基于事件流的链式调用,逻辑简介,实现优雅,使用简单RxJava中的4个角色:例如:开灯角色作用类比被观察者(Observable)产生事件开关观察者(Observer)接收事件,并给出响应动作灯订阅(Subscribe)连接...

2019-11-01 07:37:02 120

原创 设计模式——02.Build设计模式

简介Build模式是一步一步创建复杂对象的模式。允许用户在不知道内部构造细节的情况下,可以更精细的控制对象的构造流程。该模式是为了将构建复杂对象的过程和构造它的部件解耦,使得构建的过程和部件的表示隔离开,两者之间的耦合度降到最低。定义将一个复杂对象的构建和它的表示分离,使得同一个构建过程可以创建不同的表示。使用场景相同的方法,不同的执行顺序,产生不同的事件结果。多个部件或零件,都可以...

2019-11-01 07:32:14 179

原创 设计模式——01.单例设计模式

什么是单例设计模式?单例模式是一种常用的软件设计模式,通过单例,保证系统中只有一个对象实例。具体实现将构造方法私有化,使其不能在外部通过new实例化该对象在该类的内部产生一个唯一的实例化类对象,将其封装为private static 类型定义静态方法返回对象1.立即加载/饿汉式public class Singleton { // 将自身实例化对象设置为一个属性,并用...

2019-11-01 07:31:20 112

原创 屏幕适配——02.smallestWidth 限定符适配

原文地址1.屏幕分辨率适配原理屏幕分辨率限定符适配需要在 res 文件夹下创建各种屏幕分辨率对应的 values-xxx 文件夹,然后根据一个基准分辨率,例如基准分辨率为 1280x720,将宽度分成 720 份,取值为 1px~720px,将高度分成 1280 份,取值为 1px~1280px,生成各种分辨率对应的 dimens.xml 文件。假设设计图上的一个控件的宽度为 720px,那...

2019-10-30 22:03:05 278

原创 屏幕适配——01.基本概念

屏幕尺寸屏幕尺寸指屏幕的对角线的长度,单位是英寸,1英寸=2.54厘米,比如常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等屏幕分辨率屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1个像素点。一般以纵向像素横向像素,如1960* 1080。dpi(屏幕像素密度)屏幕像素密度是指每英寸上的像素点数,单位是dpi,即“dot per ...

2019-10-30 22:01:27 217

原创 CoordinatorLayout使用——layout_scrollFlags参数

layout_scrollFlags参数控制AppBarLayout中控件的行为scroll:Child View 伴随着scrollingView的滚动事件而滚出或滚进屏幕使用说明:当ScrollView将要向下滚动的时候,优先滚动的是自己,当自己滚动到顶部头的时候,再开始触发滚动AppBarLayoout中的childView;当ScrollView将要向上滚动的时候, 优先将A...

2019-10-30 21:58:43 1035

转载 安卓存储——内部存储,外部存储

1. 内部存储内部存储空间是和应用关联的,存储在内部存储中的文件只能被应用访问到。一个应用所创建的文件都在和应用包名相同的目录下,应用被卸载后这些文件也被删除。获取存储的方法获取内部存储的根路径:/dataEnvironment.getDataDirectory().getAbsolutePath()某个应用在内部存储中的files路径: /data/data/com.test.soc...

2019-10-30 21:39:38 643

原创 使用ConstrainLayout进行复杂布局的绘制

关于基本使用在此就不讲了,放几个小案例直接看看怎么使用。需求三张图宽高比为1:1左边图片占总宽度的2份,右边占1份圆头像一半覆盖左边大图<androidx.constraintlayout.widget.ConstraintLayout android:id="@+id/container" android:layout_width="mat...

2019-09-09 14:45:45 467

原创 ConstraintLayout使用

概述约束布局,是google推出的用于最大化解决布局嵌套问题,同时减少布局渲染时间,提升性能的布局。与相对布局Relativelayout有些类似,约束布局的原理与相对布局是一样的,都是根据视图与视图之间的相互依赖,相对父级布局的位置来进行布局的。但是比Relativelayout更加的灵活,功能更加强大。入门1. 添加依赖implementation ‘com.android.supp...

2019-07-01 22:22:06 283

原创 Android Studio 从2.3.1升级到3.4.1遇到的问题

1.打包报错处理方式如下图,打开此文件,找到错误的文件,发现在我的布局文件里面使用了id,但是id没有定义所以出错了。2.配置打包apk名字出错AS 2.3.1 版本如下配置没有问题,但是3.4.1报错 buildTypes { release { minifyEnabled false proguardFiles ...

2019-05-21 10:32:28 1133

原创 杀不死的服务

后台服务最近公司有个产品需求,就是要在android设备里面内置app,通过后台命令去控制该设备,并将设备信息定时上传服务端。杀不死的服务在开发做了几次修改,从开始的一天启动设备一条app就停止服务,到现在测试一个星期没有出现问题。show code守护进程&amp;lt;service android:name=&quot;.GuardService&quot;...

2018-08-02 19:30:01 990

原创 Recyclerview局部刷新介绍

介绍Recycerview中局部刷新的几个api功能很简单,一个简单recyclerview界面,测试几个api功能,通过上拉加载更多刷新界面。先测试模拟5条数据,展示简单的5个item界面。下面的代码是执行刷新操作data.get(2).name = "修改的第3条数据";data.get(3).name = "修改的第4条数据";data.get(4).name = "修改

2018-01-26 23:44:44 349

原创 Android安全

对称加密(DES)1.应用场景 1.1 本地数据加密(例如加密android 里SharedPreferences 里面的某些敏感数据)1.2 网络传输:登录接口post 请求参数加密{username=lisi,pwd=oJYa4i9VASRoxVLh75wPCg==}1.3 加密用户登录结果信息并序列化到本地磁盘1.4 网页交互数据加密2.总结 DES 安全度在现代已经不够高

2018-01-17 15:40:56 225

转载 Fragment数据懒加载

Fragment懒加载的使用场景便是在一个ViewPager管理多个Fragment时候,由于ViewPager”出色”的缓存机制会在显示一个Fragment的同时,预先加载好左右相邻两个Fragment的部分资源(会触发相邻Fragment的onCreate生命周期)。所谓的懒加载就是让我们加载数据的操作仅在Fragment可见的时候执行,可以节省不必要的开销。看”懒加载”这个名称挺唬人的,其

2018-01-17 10:38:55 190

转载 RecyclerView滚动到底部监听

public class OnRecyclerViewScrollListener extends RecyclerView.OnScrollListener implements OnBottomListener { public enum LAYOUT_MANAGER_TYPE { LINEAR, GRID, STAGGERED_GRI

2018-01-17 10:13:35 679

原创 自定义View——进度条

先看效果图 在这里先不考虑这个控件的实用性,主要是为了学习组合控件的方法。1.首先要做的是创建布局文件testtest.xmlLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

2018-01-14 13:30:13 539

原创 版本控制——2.svn分支合并

仓库目录结构是branches,tags,trunk。 branches:分支,例如主项目有bug需要修复,这时最好的做法是拉取分支,在分支上处理,处理完成合并到主项目。tags:通常存放里程碑事件代码。比如新版本发布,将项目备份到tags文件夹下。trunk:主干。居于主要地位的那份代码称为主干。1.trunk使用 新建项目保存到trunk目录下。2.tags使用 完成1

2018-01-06 12:18:44 267

原创 版本控制——1.svn冲突处理

模拟开发人员A和B协同开发中的冲突,A,B同时都从仓库拉取最新代码。1.A完成更改提交public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

2018-01-06 00:02:03 249

原创 fragment + tabhost使用

总结下几种常见的搭建主页面方式,有普通导航栏,中间凸出导航栏1.fragment + tabhostactivity_main<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http

2018-01-04 16:27:00 279

原创 kotlin——03.扩展,泛型

fun test2() { //1.正则 // 如果在java中,使用"."是不能分割的,需要"\\."转义 //Kotlin中split函数,默认不会把传入的参数当做正则表达式 for (s in str.split(".")) { print(s) } // 但是如果要将参数的当

2018-01-01 22:22:30 2321

原创 kotlin入门——01.基础

1.kotlin变量1.var (variable) 可变变量 //a.只声明变量,不赋值 var a: Int var b: String //b. 声明变量同时,赋值 var c: Int = 100; var d: Int d = 100; //变量类型支持自动推断 var e = 1; var f = "hel

2018-01-01 21:20:33 864

原创 支付宝alipaySdk-20170922集成

支付宝支付很简单,但是新的sdk还是有些坑要去踩下才知道。1.省略一些步骤。下载最新sdk。2.调用本地支付方法 zfbPay();方法参数都是后台接口返回,具体参数如下:{ "code": 200, "data": { "acctId": "", "amount": "", "callback": "", //回调地址

2018-01-01 17:11:59 2335

原创 获取listview中每个条目editText输入的内容

1.需求:listview展示商品订单列表,每个订单可以添加留言信息。最后将所有订单留言信息和订单信息提交后台进行结算。 2.实现。// editText设置输入监听childViewHolder.mEtWord.addTextChangedListener(newTextSwitcher(childViewHolder));// 将每个position位置和edittext相关联child

2018-01-01 16:04:03 2178

转载 Android系统字体大小如何影响app的字体大小?

在Android应用开发过程中,一定会碰到本来完美的布局,在系统字体大小设置【最大】时变成一团浆糊。解决办法网上也有很多,但是分析原理的却几乎没看到。博主在碰到问题的第一时间也是直接用了网上的方法,即在BaseActivity中重写getResources方法如下@Override public Resources getResources() { Resources res =

2017-12-01 16:29:54 1009

原创 Map集合

1.map集合 Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值。它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。TreeMap:基于红黑树(Red-Black-Tree)的NavigableMap实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法

2017-11-28 16:20:55 230

原创 京东商城分类实现

最近做了商城项目,分类模块是完全仿照京东实现,踩了几个坑记录下。1.一开始想到使用两个Recyclerview实现左边和右边,右边使用recyclerview嵌套gridview实现二级商品展示。实现后发现内容加载缓慢,界面明显卡顿。我们二级内展示的不是分类,而是全部全部商品,数据量大,加载就很慢了。2.解决,通过listview嵌套gridview解决了这个问题,到现在还没有想到为什么这样做就可

2017-11-21 15:55:53 1117

转载 android studio请求网络数据日志显示不全

as控制台对输出日志大小有限制。下面的工具类可以解决该问题public class LogUtil { //可以全局控制是否打印log日志 private static boolean isPrintLog = false; private static int LOG_MAXLENGTH = 2000; public static void v(String msg

2017-10-25 12:00:29 1405

仿京东分类多级数据实现

完全仿京东实现,数据来自抓取的京东分类真实数据,实现其实很简单,具体看代码,如果大家有好多实现方法希望分享一下。

2017-09-05

仿京东添加商品参数选择

高仿京东,dialog自定义view底部弹出,flowlayout标签单选。当时找了很多资源都被坑了,后来自己实现这个效果就和大家分享一下。有用好评

2017-09-04

空空如也

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

TA关注的人

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