- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 BitmapFactory.Options参数作用
参数作用BitmapFactory.Options这个参数可以设置Bitmap的采样率,通过该比那图片的宽度、高度、缩放比例等,以达到减少图片的像素的目的,设置这个值可以更好的控制、显示和使用Bitmap,可以使用该值降低OOM出现的概率BitmapFactory.Options的常用成员变量(in开头的就是设置参数,out开头的就是获取参数):public boolean inJust...
2019-06-30 15:37:11 1239
原创 Drawable与Bitmap详解
Drawable与Bitmap对比定义对比:Bitmap:称作位图,一般的位图的文件格式扩展名为.bmp,当然编码器也有很多,RGB565,RGB8888,作为一种追个像素的显示对象,执行效率高,但是存储效率低,可以理解成一种存储对象Drawable:Android下的通用的图片形象,它可以装载常用格式的图像,比如GIF,PNG,JPG,BMP,提供一些高级的可视化方法。属性对比:...
2019-06-29 21:45:53 4137
原创 Android画布(二)ShapeDrawable常用函数
ShapeDrawable常用函数setBounds()用来指定当前ShapeDrawable在当前控件中的显示位置setBounds(int left, int top, int right, int bottom)setBounds(Rect bounds)getPaint()(1)通过这个函数得到ShapeDrawable自带的画笔,如果对画笔进行操作,会立即展现在Sh...
2019-06-28 14:48:02 414
原创 Android画布(一 )
获取画布的方法* onDraw()* diapatchDraw()* 通过Bitmap创建* 通过SurfaceView的SurfaceHolder.lockCanvas()Drawable类可以通过创建dawable对象,然后将画好的drawable对象画在画布上,也是创建Bitmap的一种方式ShapeDrawableshape标签与GradientDrawable首...
2019-06-27 21:39:18 1114
原创 物联网移动APP架构设计
Android系统架构应用层SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等。这些应用程序都是用Java语言编写的,并且都是可以被开发人员开发的其他应用程序所替换应用程序框架层Android开发的基础,简化了组件的重用,开发人员可以直接使用其提供的组件来快速的进行应用程序的开发,也可以通过继承来实现个性化的拓展。包括各种管理器Manager.系统运行库包括系统...
2019-06-27 14:47:42 4951 1
原创 Dagger2依赖注入框架
Dagger2简介:Dagger: “A fast dependency injector for Android and Java“,其最大的好处就是莫跨界见解耦,这个耦合是由类之间的以来引起的,依赖注入的配置独立于初始化出,配置更改方便,可提高代码的健壮性和可维护性Dagger2相较于Dagger1的优势:(1)更好的性能:相较于Dagger1,Dagger2使用的预编译期间生成代码...
2019-06-26 21:35:00 198
原创 Canvas与图层(三)恢复画布
恢复画布有两个函数:restore()与rest无论哪种* 恢复画布有两个函数:restore()与restongoCount()restore()就是把回退栈中的最上层画布状态出栈,恢复画布状态,具体使用restoreToCount(int count)public int save();public int save(int saveFlags)public int saveLa...
2019-06-26 13:38:01 640
原创 Canvas与图层(二)画布与图层
图层(Layer):每次调用canvas.drawXXX系列函数,都会生成一个透明图层来绘制这个图形画布(Bitmap):每块画布都是一个Bitmap,所有的图像都是画在这个Bitmap上的,画布有两种:* 一种是View的原始画布,通过onDraw(Canvas canvas)的方法传入的,canvas对应的就是原始的画布,控件的背景就是华仔这块 画布上的* 另一种是人造画布,通...
2019-06-25 14:49:49 3354
原创 Canvas与图层(一)Canvas创建与画布状态操作
获取Canvas对象的方法方法一:重写onDraw()、dispatchDraw()函数构建方法:protected void onDraw(canvas canvas){ super.onDraw();}protexted void dispatchDraw(Canvas canvas){ super.dispatchDraw(canvas);}可见上述...
2019-06-24 21:09:04 2420 1
原创 物联网APP开发简介
物联网物联网(IoT Internet of Things,缩写IoT),核心的基础仍然是互联网,任何物品与物品之间的信息交换和通信,物联网通过射频识别(RFID),红外感应器,全球定位系统,激光扫描器等,把任何物体与互联网相连接,进行信息交缓和通信,以实现物体的智能化识别,定位,跟踪和监控等。物联网关键技术物联网的产业链:标识,感知,信息传送和数据处理关键技术:RFID射频识别技术、二...
2019-06-24 14:25:20 12797
原创 混合模式(二)
PorterDuffXfermode该模式针对的时在处理结果时以源图像显示为主的模式,主要有:Mode.SRC, Mode.SRC_IN, Mode.SRC_OUT, Mode.SRC_OVER和Mode.SRC_ATOPMode.SRC://全部以源图像进行显示[Sa, Sc]Mode.SRC_IN://透明度和颜色值都是通过乘以目标图像的像素得到的//利用这个特性可以实现...
2019-06-21 19:16:45 861
原创 MAT的其他像素操作
OpenCV除了支持图像的算术操作意外,还支持图像的逻辑操作、平方、取LOG、归一化值范围等操作,这些操作在处理复杂场景的图像与二值或者灰度图像分析的时候非常有用,相关的API如下:函数操作函数说明作用取反操作bitwise_not(Mat src, Mat dst)src:输入图像, dst:取反之后的图像取反之后可以对图像进行更好的分析与操作bitw...
2019-06-20 17:59:49 391
原创 混合模式(一)
混合模式混合模式能够将两个图片无缝结合,实现两张图片融合的效果,它是通过Paint类中的Xfermode setXfermode(Xfermode xfermode)函数实现的,Xfermode是一个空类和之前一样都是通过自类来实现不同的功能,子类有AvoidXfermode, PixelXorXfermode和PorterDuffXfermode由于PixelXorXfermode在API...
2019-06-20 16:38:47 1487
原创 绘图进阶(三 )
Shader之LinearGradient通过LinearGradient实现线性渐变效果构造函数:1.指定两种颜色之间的渐变//(x0, y0)渐变的起始点坐标,(x1,y1)渐变的终点坐标//color0起始颜色//color1终止颜色//tile:用于指定当控件区域大于指定的渐变区域时的填充模式public LinearGradient(float x0, float y...
2019-06-19 19:33:48 189
原创 MAT像素操作
像素读写:Mat作为图像容器,其数据部分存储了图像的像素数据,可以通过相关API获取图像数据部分,常见的Mat的像素读写get与put方法如下:方法支持类型double[] get(int row, int col)以下全部int get(int row, int col, double[] data)CV_64FC1~CV_64FC4int get(i...
2019-06-19 15:09:02 1042
原创 绘图进阶(二)
BlurmaskFliter发光效果与图片阴影引入:有了之前的阴影基础可以很快的上手发光部分,但是有以下几点特点需要先了解:发光效果也是用高斯模糊算法,只会像阴影一样影响边缘,内部图像不受影响无法指定特定的发光颜色,采用边缘模糊效果进行模糊发光,边缘是什么颜色,发光是什么颜色概述:1.setMskFilter()函数的使用(注意使用前关闭硬件加速)://MaskFilter没有具...
2019-06-18 21:40:55 361
原创 openCV绘制与填充
基础形状的绘制与填充使用OpenCV进行图形检查测和识别,我们需要在输出的图像上对处理结果加上醒目的轮廓或者以边框矩形绘制或者颜色填充,所以API可以提供相关的操作####在MAT上绘制集合形状与文本绘制直线://img:表示绘制对象是在MAT上//p1表示直线其实带你的屏幕坐标//p2表示直线终点的屏幕坐标//color表示直线的颜色,假设三通道的顺序为BGR,则new S...
2019-06-18 14:45:49 2181
原创 MAT对象
MAT对象Mat对象是OpenCV中用来存储图像信息的内存对象,当通过Imgcodecs.imread()方法从文件读入一个图像文件时,imread方法就会返回Mat对象实例或者通过Utils.bitmatToMat()方法由Bitmap对象转换而来,下面是图像各个像素的存储情况Mat中除了存储图像的像素数据意外,还包括图片的其他属性,具体尾款、高、类型、维度、大小、深度等加载图...
2019-06-17 21:14:02 1864
原创 Android OpenCV环境搭建入门实例
OpenCV简介1.定义:OpenCV全称是源代码开放的计算机视觉库,C\C++编写的,允许在学术界免费使用OpenCV Android SDK下载地址编程语言:大多数使用C\C++完成的,少量SDK使用Java、Python,在最新的OpenCV中C++替代了C语言成为了开发语言OpenCV模块介绍:OpenCV分为正式的发布版本和扩展模块,Android SDK...
2019-06-17 18:46:37 310
原创 绘图进阶(一)
贝济埃曲线Path中有很多函数,但是除了一些简单的设置和绘图用法之外,还有一个贝济埃曲线,它可以利用moveTo、LineTo连接的生硬路径边的平滑,也能实现像水波纹那样的效果一阶贝济埃曲线公式:P0表示起始点,P1表示终点,t表示当前时间,B(t)表示结果值,曲线的意义在于随着时间的变化,B(t)所形成的轨迹,可以理解为在起始点和终点之间形成在直线上匀速移动的点B(t) = (1-t...
2019-06-16 21:29:57 238
原创 绘图入门
硬件加速:GPU与CPU的区别:GPU是专门负责所有的运算工作,自带处理器和存储器,专门用来计算和存储所媒体任务的CPU的架构是有利于X86指令集的创行架构,从设计思路上看适合尽可能快的完成一项任务,但是面临类似多媒体、图形图像处理类型的任务是,就会显得力不从心在Android中在API11之前是没有GPU概念的,在API14之后,硬件加速功能默认开启在CPU和GPU绘制...
2019-06-14 19:46:02 227
原创 JNI类型和数据结构
基本数据类型:Java类型Native类型描述booleanjbooleanunsigned 8 bitsbytejbytesigned 8 bitscharjcharunsigned 16 bitsshortjshortunsigned 16 bitsintjintsigned 32 bitslongjlongsign...
2019-06-13 20:57:57 186
原创 深入了解Android NDK
Android NDK提供的组件:Android NDK并不是一个单独的工具, 他是一个包含API、交叉编译器、链接程序、调试器、构建工具、文档和实例应用程序的综合工具集主要的组件:ARM、x86和MIPS交叉编译器构建系统Java原生接口头文件C库Math库POSIX线程最小的C++库ZLib压缩库动态链接库Android日志库Android像素缓冲区库Andro...
2019-06-13 20:16:54 513
原创 SVG动画
SVG简介什么是SVG:SVG矢量动画机制,Google在Android 5.x版本中增加了对SVG的支持SVG特性:可伸缩矢量图形定义用于网络的矢量图形使用XML格式定义图形图像在放大或改变尺寸的情况下其图形质量不会有所损失符合万维网联盟标准与注入DOM和XSL之类的W3C标准是一个整体Bitmap和SVG图像的区别:Bitmap是位图,由像素点组成,放大...
2019-06-12 16:53:26 1123
原创 动画进阶(一)
利用PathMesaure实现路径动画:初始化:PathMeasure类似一个计算器,可以计算出指定路径的一些信息,比如路径总长、指定长度对应的坐标点等初始化方法一:对他进行初始化只需要创建一个PathMeasure对象即可PathMeasure pathmeasure = new PathMeasure();setPath(Path path, boolean for...
2019-06-09 15:54:09 197
原创 属性动画进阶(二)
ViewPropertyAnimator:这个机制提供了一个新函数:animate(),我们通过这个新函数来对控件进行操作。animate()animate()整个系统从调用View的animate()这个新函数开始,这个函数会返回一个ViewPropertyAnimator对象,可以通过调用这个而对象的函数来设置需要实现动画的属性自动开始动画,不需要显示的调用start()函数,这...
2019-06-09 12:55:17 251
原创 属性动画进阶(一)
从之前的ValueAnimator和ObjectAnimator中都有一个函数ofPropertyValuesHolder(PropertyValuesHolder…values)相比之下ObjectAnimator的ofPropertyValuesHolder()函数使用较多PropertyValuesHolder它其中保存了动画过程中所需要操作的属性和对应的值,我们通过of...
2019-06-08 19:19:57 119
原创 Dalvik指令集
在调用格式上模仿了C语言 的调用约定采用从目标到源的方法根据字节码的大小与类型不同,一些字节码添加了名称后缀以消除歧义32位常规类型的字节码未添加任何后缀64位常规类型的字节码添加-wide的后缀数据定义:const/4 vA, #+B 将数组扩展为32位后赋给寄存器Aint a = 1; => const/4 v0, 0x1const/16 vAA, #+...
2019-06-07 18:58:28 354
原创 Android应用逆向分析
Android逆向入门Java语言, smali汇编 dex odex ->android ndk开发加壳与脱壳(vmp技术)一般需要保护的文件就是dex,so文件APK结构逆向分析工具:Android SDKAPKTooljarsignerkeytool对需要操作的文件的理解classes.dex逆向步骤:解压apk和拆卸classes.dex...
2019-06-07 18:11:26 878
原创 Kotlin-小抄(一)入门与基础语法
kotlin特性:Kotlin是一种基于JVM的静态类型编程语言与Java及JVM的完全互操作性多平台:适合Android、浏览器和本地系统编程语法简洁不咿嗦(便于学习)富于表现力和高效的生产力支持类型推断 例如,我们可以只写 val number=23 编译器会推断这 Int;可以使用数据类 data class )以极简的方式创建 POJO;运算符重载相当简单快速、 方...
2019-06-04 21:39:47 275
原创 Animator动画的XML实现
animator标签的字段animator标签说明android:duration每次动画播放的时长android:valueFrom初始动画值,取值范围为float、int和color这三种类型的值android:valueTo动画结束值,取值范围同样是int float color三种类型的值android:startOffset动画激活延时...
2019-06-04 18:25:49 251
原创 Android自定义动画--放射菜单
首先计算角度的问题比如这次使用的是5个图标的动画,那么90度分为4份,那么每份为22度这样可以看出每个圆形图片x方向移动了radius* sin22, y方向移动了radius * cos22Java中求正余弦//其中的degree为弧度值Math.sin(double degree);Math.cos(double degree);Math.tan(double...
2019-06-04 17:58:55 635
原创 AnimatorSet组合动画
看了ValueAnimator和ObjectAnimator,他们只能实现一个动画,如果我们想使用一个组合动画,就需要用到AnimatorSet一般而言我们不会使用ValueAnimator,只会使用ObjectAnimator组合动画实现在AnimatorSet中提供了两个函数:playSequentially()和playTogether(),前者表示所用动画依次播放,后者表示...
2019-06-04 15:32:21 769
原创 UiAutoMator报告查看
报告的简介以及查看错误的类型:断言错误:AssertionFailedError脚本错误:UiObjectNotFoundException、Java异常等报告状态:运行状态结果状态运行状态运行状态结果状态运行信息1运行前0Ok运行前信息-1运行完成-1Errors 脚本错误运行中信息-2Failu...
2019-06-03 21:18:59 327
原创 设计模式(12)--责任链模式
责任链模式原理:购买请求一个决策项目决策因素:价格,决策级别:组长,部长,副总,总裁考虑扩展性:根据请求需要的东西根据请求的总额可能审核时还要删减如果使用switch语句,会增加耦合性,所以将原来的switch处理逻辑体现在链上,谁能处理就留下处理责任链模式:如果由多个对象都有机会处理请求,责任链可以使请求的发送者和处理者解耦,请求...
2019-06-03 08:28:29 149
原创 Configurator类介绍与使用
Configurator用于设置脚本动作的默认延时(比如两次点击之间,系统时加入延时的)Cofigurator功能:可调节两个模拟动作之间 的默认距离可调节输入文本的输入时间间隔可调节每次滚动的时间间隔可调节等待系统空闲的默认时间API:延时项默认延时功能描述API动作3s设置延时setActionAcknowledgmentT...
2019-06-01 10:37:14 3321
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人