自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 手把手用Camera2撸一个Zxing扫码

目前github及各个博客平台有关扫码用的都是Camera1, 笔者今天就来个用Camera2实现的, 且功能齐全Step1 Camera2实现阅览要实现阅览要先得选配各个参数,包括预览尺寸, 输出尺寸等StreamConfigurationMap map = mCameraCharacteristics.get( CameraCharacteristic...

2020-05-02 19:10:58 3380 3

原创 递归方式实现排列(放回不放回)

放回 static ArrayList<String> strings = new ArrayList<>(); public static void values(String[] words, String beforeString, int index) { //最后一项 if (index == words.length - 1) { for (String word : words) {

2021-04-20 16:32:36 347

原创 zxing扫码优化(灰度优化)——纯干货

引言有关zxing剪裁,线程池之类的就不说了, 简单扯一下从灰度上边做优化,为什么要用灰度优化? 因为你扫不出的东西, 剪裁的再小,线程再多也还是扫不出。什么是灰度要从这个方面入手就得先搞懂什么是灰度: 灰度使用黑色调表示物体,即用黑色为基准色,不同的饱和度的黑色来显示图像。 每个灰度对象都具有从 0%(白色)到100%(黑色)的亮度值。 使用黑白或灰度扫描仪生成的图像通常以灰度显示。度娘搜出来的一端话。 简单来说就是不带任何色彩只有黑色到白色这段区间范围黑白电视展示出来的这种。 纯黑色值是0, 纯

2020-08-17 19:04:36 2436 1

原创 Zxing 识别反色二维码

原理其实很简单就是对YUV颜色取反, 255 - color & 0xff, 笔者起初想法是通过改变源码中BitMatrix类中的值来实现, 无奈流程过于复杂以失败告终,最后发现还是得从源头出手,恰好zxing源码大牛提供该方案InvertedLuminanceSource 通过该类实现即可。 @Override protected void needParseDeploy(PlanarYUVLuminanceSource source) { if (result !=

2020-07-21 18:28:32 1836

原创 Android UI性能极限库-真正的响应零延迟(快到飞)

ShareView一个管理多个布局元素数据的库,用View模拟了Activity的栈结构,响应极其快速,布局之间通过订阅传递数据,让代码结构变得更加清晰。效果图(img-cndLerQt-1572107633697)(https://github.com/ailiwean/ShareView/blob/master/img/demo.gif?raw=true)]依赖allprojects...

2019-11-18 00:18:00 617

原创 欧几里德——最大公约数(辗转相除法)

算法本质有两个数A,B,假设A>B, 他们的最大公约数等同于B与A%B的求最大公约数,有点像递归, 最后算到A’x%B’x恰好等于0时,B’x则为所有数对之间的最大公约数#include <iostream>#include <string>using namespace std;int getMaxDivisor(int a, int b);int...

2019-10-03 23:49:17 421

原创 C++日记——清空缓存区

不同于C的fflush(stdin)std::string num;std::getline(std::cin, num);试遍了其他方法,clear(),sync(),没啥显著效果

2019-10-03 23:19:31 394

原创 Android——实现点击校验登陆跳转屏蔽多次点击(非侵入式零改动)

简论每个APP几乎都会有个登陆功能,也自然需要某些按钮点击后验证是否登陆,没有登陆则跳转登陆界面, 较为庞大的项目可能每个模块之间的跳转都不同,我们传统的写法就是实现不同的OnClickListener类,然后将其实例set进去,又或者在BaseActivity中扩展其他方法,功能上是没问题,不过这样的写法让人有点头疼, 同界面可能这个需要验证那个不需要验证那么就需要两套方式来解决,后期改动对...

2019-10-01 17:36:09 772

原创 关于V_Layout的使用总结

VLayout在处理RecyclerView多布局时使用了分块Adapter,也就是一个RecyclerView存在多个Adapter。最后通过一个总的Adapter整合了所有。核心类VirtualLayoutManager重写了RecyclerView的原生LinearLayoutManager,来间接管理各个Adapter,所以使用VLayout必然要配置VirtualLayoutMan...

2019-03-23 13:43:10 1154

原创 Android Studio无法阅览源码问题

没有下载源码资源文件导入了v7-28.0.0依赖这个最新版目前好像还没有提供源码,可降级到27.1.1implementation 'com.android.support:appcompat-v7:27.1.1'导入了design-28.0.0依赖这时某些控件仍会覆盖appCompat-V7的,需要隔离implementation('com.android.support:des...

2018-11-03 17:17:51 694

原创 android 阴影方案 ——suibi

elevation与translationZ二者都有控件在Z轴上高度的意思,区别是elevation可在XML以及代码中调用View.setElevation()实现,而translationZ只能用于动画实现。如何体现出阴影效果? 两种方案background图层含有所绘制的比如这样&amp;lt;shape xmlns:android=&quot;http://schemas.androi...

2018-08-20 19:40:58 354

原创 Matisse的完整使用

Matisse为我们提供了一个非常稳定了图片视频选择框架github地址依赖: compile ‘com.zhihu.android:matisse:0.5.2-beta2’ implementation ‘com.github.bumptech.glide:glide:4.7.1’ annotationProcessor ‘com.github.bumptech.glid...

2018-08-15 16:48:35 16792 10

原创 RxJava 基础总结 (四)

操作符Single single是独立的一个发射器,与Observable没多大关联,不过他的接口方法与Observable都是大径相同的。Single 只会接收一个参数,而 SingleObserver 只会调用 onError() 或者 onSuccess()。 Single.create(new SingleOnSubscribe&amp;amp;amp;amp;lt;String&amp;amp;amp;amp;gt;() { ...

2018-08-14 17:31:18 270

原创 RxJava2基础总结(三)

操作符Distinct去重,将要发射的数据进行比较,重复的数据舍弃。 比较方式自然而然为equals了。 Observable.just(new Integer(200), new Integer(200), new Integer(200)) .distinct().subscribe(new Consumer&amp;amp;lt;Integer&amp;amp;gt;() {...

2018-08-02 19:52:57 207

原创 RxJava2基础总结(二)

操作符rxjava之所以强大原因就在这里了,操作符可对原始发射器发出的数据进行多种变换继而重新发送。Map 它的作用是对发射时间发送的每一个事件应用一个函数,每一个事件都按照指定的函数去变化 Observable.create(new ObservableOnSubscribe&amp;amp;lt;String&amp;amp;gt;() { @Override ...

2018-08-01 20:11:06 380

原创 RxJava2基础总结 (一)

发射器Observable 被观察者,内部存放观察者,用于发射数据。创建默认发射器Observable.create 创建一个含有执行过程(得到发射数据)的发射器 Observable.create(new ObservableOnSubscribe&amp;amp;amp;amp;amp;amp;lt;Object&amp;amp;amp;amp;amp;amp;gt;() { @Override publi

2018-08-01 18:33:48 543

原创 android 随笔———— bean的封装

在json解析的时候,我们不同业务的Bean总有相同的地方,于是可以将其封装在一个基本类中,然后去专注核心业务。public class BaseRespond&amp;lt;T&amp;gt; { private int statusCode; private String statusKey; private String statusDesc; privat...

2018-07-24 14:52:51 2996

原创 Android随笔—— 时间小结

时间无非也就分两种了, 系统时间,网络时间。系统时间System.currentTimeMillis() 由java语言提供,计算从1970年1月1号0时0分0秒到当前系统所设定的时间的差值,SystemClock.elapsedRealtime() 由android APi提供,计算从手机boot到当前时间的差值。规范显示上述两种方法只是得到了差值却不能清晰得到明确时间。...

2018-06-07 01:11:00 242

原创 Android 随笔——android:clipChildren="false"属性

之前笔者认为一个View的显示必须在Parent的mesure以及layout范围内,超出那个部分Canvas就会失效,而最近笔者做ViewPager,要实现中间完全显示两边部分显示时完全刷新了笔者的认识。ViewPager的内部机制ViewPager控件的Left对应的值永远是0,Right永远是1, 完整的一个滑动过程就从X-0,或者从0-X。如果要中间显示那么ViewPager必然要...

2018-05-12 16:41:36 3423

原创 okhttp3基础使用全解析(配合servlet)

依赖compile 'com.squareup.okhttp3:okhttp:3.10.0'类OkHttpClient 核心类, 内部封装请求响应业务逻辑,由于体积庞大所以只生成一个对象。 RequestBody post请求所用到的类,用于打包上传的数据,为了简化操作又分为两个子类。 FormBody RequestBody的子类之一,只能用于打包键值对,默认编码方...

2018-05-07 17:43:13 3409

原创 Android XML 用途汇总

android中XML的使用主要分以下几个大类AnimationAnimatorDrawable Layout MenuValues这些文件均在R中存在映射可以通过R.xxx.xxx得到映射值最后转换成我们所需的对象。Animation在res里建立文件夹anim用于存放所有Animation的XML资源传统补间动画&amp;lt;set xmlns:an...

2018-04-30 01:15:28 1682

原创 Android 仿图库,QQ等图片查看手势操作

引言 阅览图片是生活中必不可少的事,而这个过程包括了许多的操作比如拖动图片,双击放大缩小,双指拖动固定区域放大等。笔者直接贴出自己写的代码然后逐步分析设置思路。设计源码 public static void setGesture(final ImageView image) { imageView = image; defeautHeight ...

2018-04-07 01:18:23 1238

原创 Android玩转ViewPager(一) 实现循环滚动

循环滚动应用场景还是较多的,这里是支付宝一个例子 两个ImageVIew并提供了自动轮播以及手动无限翻页的功能。先总结一下VIewPager的基础。ViewPager是什么 继承了ViewGroup所以本身用于存放View,而自动翻页的特效无非就是自身Canvas的移动,通过Scroll来实现。PagerAdapter是什么PagerAdapter称ViewPager的...

2018-03-24 18:06:51 7065 3

原创 android 文件路径总结

手机系统内部空间Context.getFilesDir().getPath(); // /data/data/&lt;PackageName&gt;/filesContext.getCacheDir().getPath(); // /data/data/&lt;PackageName&gt;/cacheEnvironment.getDataDirectory().getPat...

2018-03-10 15:05:30 5630

原创 android之setContentView,addContentView(),Window,WindowManager,Dialog源码剖析。

setContenView:任何一个Activity在onCreat()方法里要执行一次setContentView,而setContentView作用笔者总结为两大类 ONE:第一次setContentView时创建一个Decorview并关联到当前的PhoneWindows(Windows的具体实现类)TWO:从DecorView中找到合适的FrameLayout,并将我们传入的自

2018-01-27 22:31:06 3971

原创 android 动画详细总结(含有自定义动画)以及插值器与估值器分析

在android开发中动画已经是随处可见了,所以本片文章笔者将详细总结常见动画的使用!动画的分类:帧动画:什么是帧动画?其实就是一帧一帧切换图片所以看起来就有动画效果。看看如何使用: 第一步定义一个xml文件在drawable里:<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.

2017-12-26 19:13:43 991

原创 android 事件分发机制(源码分析)—(详细)(逐步总结)(值得一看)

核心方法: ONE:dispatchTouchEvent(MotionEvent ev):处理整个事件的核心所在,事件分发由它执行,重要到什么程度如果你自定义一个Layout并且重写这个方法将其代码清空那么这个ViewGroup以及它的所有子View将都无法接收任何事件TWO:onInterceptTouchEvent(MotionEvent ev) :用于事件的拦截,就是决定这个事件...

2017-12-19 23:13:53 237

原创 Material Design 方案之 <DrawerLayout> (详细)

DrawerLayout给我们提供的屏幕滑动拖出选项栏功能,并且布局的过程非常简单。 这个是哔哩哔哩的布局用的就是DrawerLayout,从屏幕左边滑动便可以拖出菜单栏。文章大纲:1:什么是DrawerLayout: 2:如何布局Drawerl...

2017-12-15 15:28:07 382

原创 android 使用相机拍照以及FileProvider源码浅析

调用系统相机拍照有两种方式:ONE: 使用Intent传递Bitmap button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent intent=new Intent("android.media.action...

2017-12-12 18:28:40 1210

原创 Material Design 方案之 <Toolbar> (详细)

随着android 版本不断推进,android的标题栏也渐渐由ActionBar过渡到Toolbar, Toolbar涵盖了ActionBar的所有功能并且更加灵活,于是笔者就总结了Toolbar的使用。 注意: << 我们继承的是AppCompatActivity与Activity相比兼容了android较低版本的Material Design&...

2017-12-10 16:57:40 434

原创 Handler机制总结

在异步更新UI时用到Hanler消息机制,笔者(新手)在深入过程的总结。 用到一下参数: Looper:提供消息存储以及执行的一个类 sThreadLocal.set(new Looper(quitAllowed)); 源码中的Looper类,进入后:private Looper(boole...

2017-12-06 18:49:35 226

原创 android 在状态栏显示内容以及更改状态栏颜色

TWO:状态栏显示内容: 当一个Activity创建时也随之分配一个Windows()对象所有的VIew将会依赖与此窗口显示,而程序最底层的VIew 则是DecorView这个DecorView通过getWindow().getDecorView()方法获得,DecorView在网上查找相关信息得知它最终分为两部分一部分FrameLayout用来显示title(标题栏...

2017-12-01 01:50:26 627

原创 dp转换px

需要用到的相关: DisplayMetrics:根据名称 <显示的度量> 即可拿到我们需要的相关参数 怎样拿到含有相关参数的 DisplayMetrics : 1: getResources().getDisplayMetrics(); 2: DisplayMetrics displayMetrics=new Display...

2017-11-29 18:56:45 1046

空空如也

空空如也

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

TA关注的人

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