随笔博文

  • ColorUtil【Color工具类(color整型、rgb数组、16进制互相转换)】

    前言主要用于color整型、rgb数组、16进制互相转换(-12590395 <—> #3FE2C5 <—> [63,226,197])代码分析color的int类型值转16进制类型值包括两种方案:方案一:思路:计算&16777215的值,然后通过字符串获取16进制数值。/**Color的Int整型转Color的16进制颜色值【方案一】 * colorInt - -

    2022-11-24 michael007js 66

  • 如何保证API接口安全

    APP、前后端分离项目都采用API接口形式与服务器进行数据通信,传输的数据被偷窥、被抓包、被伪造时有发生,那么如何设计一套比较安全的API接口方案呢?一般的解决方案如下:1、Token授权认证,防止未授权用户获取数据;2、时间戳超时机制;3、URL签名,防止请求参数被篡改;4、防重放,防止接口被第二次请求,防采集;5、采用HTTPS通信协议,防止数据明文传输;一、Token授权认证HTTP协议是无

    2022-11-24 michael007js 160

  • Android Paint 画笔的一些偏知识

    setStrokeCap(Paint.Cap cap) 设置线头的形状放出「平头」「圆头」「方头」这种翻译我始终有点纠结:既觉得自己翻译得简洁清晰尽显机智,同时又担心用词会不会有点太过通俗,让人觉得我不够高贵冷艳?当线条的宽度是 1 像素时,这三种线头的表现是完全一致的,全是 1 个像素的点;而当线条变粗的时候,它们就会表现出不同的样子:虚线是额外加的,虚线左边是线的实际长度,虚线右边是线头。有了

    2022-11-23 michael007js 621

  • WebView 图片宽度自适应屏幕

    本文讨论的不是类似秒拍的短视频录制,而是用户选择本地一个现有视频,压缩后上传。秒拍的实现其实是自定义视频录制功能,从而控制录制时长,分辨率,码率等,生成体积很小的视频再上传。而我们则没办法控制原视频的参数,可能是一个很大的视频需要压缩处理。思路利用ffmpeg对视频转码,通过设定参数生成分辨率和码率更小的视频,实现压缩。当然,ffmpeg的功能远不止如此,这是一个很大的专题。用到的开源库:http

    2022-11-23 michael007js 119

  • Lifecycle Activity和Fragment生命周期感知组件 LifecycleObserver

    为什么要引进 Lifecycle我们在处理Activity或者Fragment组件的生命周期相关时,不可避免会遇到这样的问题:我们在Activity的onCreate()中初始化某些成员,比如MVP架构中的Presenter,或者AudioManager、MediaPlayer等,然后在onStop中对这些成员进行对应处理,并在onDestroy中释放这些资源。这是很常见的情形,按照通常的做法,我

    2022-11-23 michael007js 489

  • 深入解析volatile关键字

    volatile关键字在Java多线程编程编程中起的作用是很大的,合理使用可以减少很多的线程安全问题。但其实可以发现使用这个关键字的开发者其实很少,包括我自己。遇到同步问题,首先想到的一定是加锁,也就是synchronize关键字,暴力锁解决一切多线程疑难杂症。但,锁的代价是很高的。线程阻塞、系统线程调度这些问题,都会造成很严重的性能影响。如果在一些合适的场景,使用volatile,既保证了线程安

    2022-11-23 michael007js 125

  • Android 获得View截屏最优方案

    Android 获得View截屏最优方案/** * 获得View的截屏 Bitmap * * @param view * @return */public static Bitmap getMagicDrawingCache(Context context,View view,boolean quick_cache) { Bitmap bitmap = (Bitmap) view.getTa

    2022-11-22 michael007js 25412

  • zxing 二维码、带logo二维码生成

    普通二维码生成import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public class ZxingEncoder

    2022-11-21 michael007js 1206

首页
关于博主
我的博客
搜索