自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

louyulin的博客

醉里挑灯看剑

  • 博客(37)
  • 收藏
  • 关注

原创 android RxJava2使用 操作符代码总结整理

本文是自己总结代码的一篇文章 不会有知识概念性的讲解 需要对rxjava2有最基本的了解首先引入依赖dependencies { compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'io.reactivex.rxjava2:rxjava:2.0.7' // 注:RxJava2 与 RxJav

2018-02-07 14:14:10 456

原创 Android 判断系统剪切板内容是否来自自己的app

场景描述现在做一个电商的口令分享 复制之后 打卡app会弹起一个dialog 然后点击按钮跳转到商品详情页,如图所示:但是会出现一个问题就是 当app自己复制了自己的口令之后 再次进入app会弹起这个弹窗 (因为MainActivity的onResume每次都会去检查粘贴板的内容) 自己复制的效果如下这就导致了 我复制了自己的口令的自己的口令 却把弹窗调用出来了 实际上只有从app外复制 也就是从微信 qq 浏览器 等外部复制口令 才可以打开弹窗解决思路复制的时候可以传一个key值 这个ke

2021-10-12 15:30:34 884 1

原创 Android 检查网络状态是否可用 (工具类总结三)

public class NetCheckUtil { public static boolean checkNet(Context context) { // 判断是否具有可以用于通信渠道 boolean mobileConnection = isMobileConnection(context); boolean wifiConnect...

2019-03-18 16:03:17 5647 1

原创 Android 封装使用SharedPreferences工具类 添加 获取 删除全部(工具类总结二)

public class SpUtil { public static final String SP_NAME = "config"; private static SharedPreferences sp; // 存储用户id 把key写在这里 使用的时候调用就行 public static final String USER_RUN_NICKNAME = "u...

2019-03-18 15:59:05 220

原创 android 打开word pdf excle 进行预览 (工具类总结一)

public class OpenFileUtil { public static void openFiles(Context ctx, String filesPath) { Uri uri = Uri.parse("file://" + filesPath); Intent intent = new Intent(); intent.a...

2019-03-18 15:55:46 989

原创 android 快速解决gradle依赖冲突

如果两个依赖中有相同的引用但是引用的版本不同就回造成依赖冲突导致项目无法运行,首先我们人为的强制造成一个冲突 implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0' implementation 'io.reactivex.rxjava2:rxjava:2.0.6' implementation 'io.re...

2019-03-14 13:37:34 759

原创 Android 多线程断点下载文件

效果图首先先上一下效果图 如果有需要的朋友可以往下看我的具体实现:整个下载的过程都在后台服务中进行,因此实现了一个activity将任务加入下载 在另一个activity中显示进度并能控制暂停,同时结合了sqlite进行缓存,将任务列表缓存到本地,下次打开app任务依然存在并能继续实现的思路1.创建一个sqlite的表 将任务列表中的 例如文件名 url 等信息进行缓存2. 封装下载工...

2019-03-06 10:24:01 2259 4

原创 AndroidStudio 最标准的流程 项目初始化git并提交到github

一 正常的创建一个AndroidStudio项目这个没啥可说的…二 下载ignore插件先下载ignore插件 一定要配置好忽略文件之后再进行后续的操作 下载完成后创建ignore文件 如果项目有的话请删掉重新创建 点击之后进去选择Android选项 创建成功之后会发现被忽略的文件夹都已经灰色的了 三 创建github仓库 并复制仓库地址注册github账号 创建仓...

2018-07-06 16:53:30 1468 2

原创 android Edittext 密码明文暗文切换时 digits 失效的解决办法

一 明暗问切换密码的方式//明文显示mPW.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); //光标返回当前位置mPW.setSelection(setpswEt.getText().length());//暗文显示mPW.setInputType(InputType.TYPE_CLASS_TE...

2018-05-23 17:01:22 1569

原创 Android WebView 使用总结 和 js 交互方总结

一 Webview 使用方法总结加载网页 webView.loadUrl("http://www.google.com/");给webView设置客户端(不会弹出浏览器打开) // 设置WebView的客户端 webView.setWebViewClient(new WebViewClient(){ @Override ...

2018-03-27 20:46:03 275

原创 android 购物车小球掉落动画

先贴效果图对自定义View小红球的绘制public class BallView extends TextView implements ValueAnimator.AnimatorUpdateListener { public static final int VIEW_SIZE = 20; protected Context mContext; protected ...

2018-03-06 09:39:59 1110 1

原创 android shape 使用总结

总结一些常用常用的代码 使用shape的好处有很多 不用担心图片失真,也不用麻烦美工,一些圆角渐变等设计也可以用xml文件的形式来实现 跟我之前总结的VectorDrawable一样 使用xml形式能够更好的给项目瘦身方法shape中的方法以及参数类型 后面根据实际例子进行总结<?xml version="1.0" encoding="utf-8"?><shape xm...

2018-03-05 20:01:51 185

原创 Android VectorDrawable 矢量图+属性动画 使用总结

代码已经同步到GitHub然后看一下效果图:前两个图标是让android的组件使用VectorDrawable后面的是动画效果 后面会详细介绍.什么是VectorDrawableVectorDrawable 是Android特有的SVG矢量图加载机制 这种机制将svg以xml文件解析出来 Path代表着一条线的路径在AndroidStudio中创建一个VectorDrawable:点进去之后的ic...

2018-03-02 18:20:17 1595

原创 Android 属性动画使用总结

把四大常用效果加动画组合的代码整理了一下下面是一个演示图:简单强调一下:获取ObjectAnimatorObjectAnimator animator = ObjectAnimator.ofFloat(textview, "alpha", 1f, 0f, 1f); 第三个参数是 ...无限多的形式 因此可以根据自己的需求传递参数最后上一下代码Acitivity中点击按钮开始动画:public c...

2018-02-28 15:19:28 170

原创 Android ipc数据传递方式之二 Messenger 信使

之前ipc数据传递相关文章: ipc数据传递方式之一 aidlMessenger可以翻译为信使 顾名思义 它可以在不同进程之间传递Message对象,我们在Message中放置我们要传递的数据,就可以进行进程间的数据传递了看一下Messenger的构造方法 很明显Messenger的底层是由aidl实现的 使用Messenger进行进程间通讯也更加方便 public Messenger(Ha...

2018-02-08 21:08:54 323

原创 Android ipc数据传输方式之一 AIDL

AIDL 的全名是 Android Interface definition language,就是一种在安卓的接口定义语言,而它的作用就是主要用于不同进程之间的通信一 如何在AndroidStudio中创建AIDL?首先要创建一个AIDL文件 AndroidStudio 穿件方式如下图:第一次这样创建完成后就会出现一个aidl的文件夹然后我们创建一个aidl文件 写完

2018-02-03 15:47:11 354

原创 Android RecyclerView下拉刷新和上拉加载封装

效果图:代码已经同步到github~https://github.com/louyulin/PullLoadRecyclerViewGradle引入依赖: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies...

2018-01-30 20:39:41 1629 1

原创 wanandroid android移动端(非官方) mvp+rxjava+retrofit设计

代码同步github 喜欢的老铁给个start将鸿洋大神wanandroid网站的公开接口整理制作了一下,非常喜欢羊神的这个网站,知识体系真的覆盖的非常全面而且广度深度同时具备.这是wanandroid的开放api其实mvp+rxjava+retrofit设计已经烂大街了因为封装起来用的飞起...今年希望自己能熟练掌握一下kt...具体功能有:登录注

2018-01-16 14:04:47 1127 2

原创 Android LayoutInfater注入布局 inflater()方法 参数讲解

安卓如果要注入布局 需要使用 LayoutInflater.from(context).inflate(resource,root,bollean);这个方法的返回值是一个View 就是需要被注入到另一个布局的View ,但是这个方法可以填三个参数 也可以复写两个参数,点开LayoutInflater源码,我们可以看到,这个类实际上是Android提供的以Pull形式来解析xml布局

2018-01-05 08:50:48 1065

原创 java 递归二分查找

二分查找就是在一个有序的序列中 比如从小到大中 以递归的形式对中间点进行比较,判断值所在的区别,逐渐锁定位置..public class T { public static void main(String[] args) { List list = new ArrayList<>(); list.add(5); list.add(4);

2018-01-03 19:52:09 225

原创 Android7.0调用系统相机拍照、相册选择图片、裁剪 图片压缩

其实这篇博客跟并没有太多技术上的难点,更多的是对一些碎代码的整理分享给大家这个demo是在7.0虚拟机上运行的,能够向下完美兼容各个版本老规矩..首先看一下效果图..打开系统相机相册:         打开相机相册后进入系统图片剪裁:  图片质量压缩对比图...  右边为压缩过的  效果图展示完了 现在开始说代码首先7.0

2017-12-23 11:13:10 2891 2

原创 android 图片工具类 (图片压缩 图片长按缓存 Bitmap转Base64 Bitmap转File File转Bitmap 打开系统相册解析URI)

总结了一下自己平时跟图片打交道的常用代码 尤其是压缩这块,整理了一下质量压缩方法 代码里有详尽的注释 复制之后可以直接拿去用...public class ImageUtil { /** * 获取缓存文件夹的相对路径 */ public static String getDiskCacheDir(Context ctx) { String

2017-12-20 21:22:30 525

原创 Android MVP+RxJava+Retrofit 入门封装

为什么要在Android开发中使用MVP个人理解是这样的,并不是mvc模式不好,做过javaweb开发的小伙伴都知道mvc也是为了更好的解耦,但是因为在android开发中,有Activity这样的组件以及Fragment这样的碎片会导致Activity中的代码太臃肿,因为Activity中既要写逻辑(C层)也要写数据获取(M层),所以在一个类中C层和M层的代码都在一起了如何能够快速掌握MVP设计...

2017-12-14 19:45:42 330

原创 Android 单例模式封装 RxJava+Retrofit 网络请求

之前用单例模式总结过RxJava+Okhttp封装其实Retrofit和Rx的结合更加契合,直接总结代码,代码里会有注释解释首先引入依赖compile 'com.squareup.retrofit2:retrofit:2.2.0' compile 'com.squareup.retrofit2:converter-gson:2.2.0' compile 'com.squ

2017-12-13 19:25:49 1384

原创 Android 多线程断点下载 Okhttp+AsyncTask 封装下载任务

先看一下效果图     实现过程并不是很难 下面代码中会有详细的注释首先添加依赖和权限 compile 'com.squareup.okhttp3:okhttp:3.4.1' 下载状态的回调接口public interface DownloadListener { void onProgress(int progres

2017-12-13 16:44:48 1175 1

原创 Android 单例模式 封装 Okhttp + RxJava 网络请求(get和post)

用过Retrofit的小伙伴都知道,当Retrofit和RxJava结合使用的时候,我们需要在定义Api的接口中的请求方法的返回值设置成一个带有解析实体类泛型的Observable下面Rxjava和Okhttp结合使用导入依赖: compile 'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava

2017-12-12 10:57:57 870

原创 Android Material Design全面总结(CoordinatorLayout+AppBarLayoout+CollapsingToolbarLayout+自定义behavior)

系统的整理总结一下MD风格的控件以及使用:包括:Toolbar 、AppBarLayout 、CoordinatorLayout CollapsingToolbarLayout DrawerLayout+NavigationView  、 CardView 、RecvclerView 、TabLayout和menu菜单以及behavior 以及 scrollFlags 等属性总结

2017-12-09 12:03:50 1127

原创 Android 在线下载更新App 下载完成安装APK(兼容Android7.0)

首先对android7.0的打开文件方式进行适配使用FileProvider第一步:在AndroidManifest.xml清单文件中注册provider,因为provider也是Android四大组件之一,可以简单把它理解为向外提供数据的组件,这种组件在实际开发中用的频率并不高,四大组件都可以在清单文件中进行配置。<application ...> <p

2017-12-06 11:52:58 6632 3

原创 java 单例模式的几种实现

1.饿汉模式这种方式比较常用,但容易产生垃圾对象。优点:没有加锁,执行效率会提高。缺点:类加载时就初始化,浪费内存。public class SingleTon { private static SingleTon instance = new SingleTon(); private SingleTon () {}; public static

2017-12-04 11:45:54 156

原创 java 设计模式 观察者模式

上一篇博文讲的是EventBus的使用,EventBust正是基于观察者模式解释一下:当对象存在一对多关系时,则使用观察者模式。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为模式。用白话说,就是观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。

2017-11-27 09:58:44 180

原创 android EventBus 使用

EventBus定义:是一个发布 / 订阅的事件总线。EventBus解耦性极高,下面是EventBus的一个流程图下面的代码将举一个例子在项目中也可以运用,一个Activity向另一个Activity传值 因为布局很简单就是一个按钮,所以就只有逻辑代码首先我们要创建一个消息类,也就是EventBus要传递这个消息类public class FirstEv...

2017-11-24 20:34:11 270

原创 java插入排序--直接插入排序

static int[] a = { 49, 38, 65, 97, 76, 13, 27, 50 }; public static void main (String [] args) { insertionSort2(a); for (int i : a) System.out.print(i + " "); }直接

2017-11-21 09:43:30 222

原创 Java交换排序————冒泡排序及快速排序

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 public static int num[] = { 9, 8, 6, 4, 3, 7, 5, 2, 1, 0 }; public s

2017-11-15 15:11:56 257

原创 在AndroidStudio上搭建 Kotlin 开发环境

Kotlin是基于JVM的编程语言,与Java 100%互通,并具备诸多Java尚不支持的新特性。Kotlin语言作为安卓开发的一级编程语言。下面是在AS上进行Kotilin 环境搭建的过程。首先在settings中下载Kotilin插件我这里已经安装了这个插件 然后对当前的项目的gradle进行修改配置 project gradle:添加Kotin 和 Anko的支持...

2017-10-25 10:52:37 906

原创 android 不使用READ_EXTERNAL_STORAGE权限进行访问sd卡

正常在对sd卡进行访问的时候,我们都需要在清单文件上写上读取的权限等,如果我们直接访问软件自己报名下的目录,那么久不需要使用任何的权限,就可以进行读写。这个文件的路径是:实现的代码也很简单,系统提供了方法: File file = getExternalFilesDir("lou"); if (file != null) { S

2017-10-24 13:49:02 5090

原创 Android 6.0 动态权限申请管理 用户拒绝不再提示后再申请

对于targetSdkVersion版本为23包括23以上,在6.0以上机型运行的时候都需要进行动态权限的申请,但并不是每个权限都需要,因此看下图 下图的权限为危险权限 下面是一个电话拨打的例子public class MainActivity extends AppCompatActivity { private static final int PERMI

2017-10-23 17:59:41 10464 1

原创 android 轮播图 使用banner依赖实现

首先讲一下轮播图的思路 我的做法是pagerAdapter //轮播图的适配器class CarouselVpAdapter extends PagerAdapter { private List urlStrs; public CarouselVpAdapter(List urlStrs) { this.urlStrs = urlStrs;

2017-03-20 20:26:16 2794 3

空空如也

空空如也

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

TA关注的人

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