自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 反编译APK,二次签名打包

事出突然,需要对项目进行反编译并二次打包,查阅了许多资料,算是打包成功,再次做个简单的记录。准备好需要的工具dex2jar-2.0https://sourceforge.net/projects/dex2jar/apktool_2.4.1https://ibotpeaches.github.io/Apktool/jd-gui-1.6.6http://java-decompiler.github.io/baksmali-2.4.0https://bitbucket.org/Jesu...

2020-09-08 17:28:00 421

原创 Android 适配的几种方式

由于Android的碎片化,导致app的界面元素在不同屏幕尺寸上显示不一致,所以Android的适配问题一直都比较让人蛋疼。一般来说,常见的屏幕适配方式有以下几种:1)布局适配-避免写死控件,采用wrap_content,match_parent-LinearLayout权重-RelativeLayout-ContrainLayout 约束布局-Percent-support-lib ...

2019-07-04 10:36:14 809

原创 Android 事件分发机制

在Android事件分发机制中,主要有三个方法1)dispatchTouchEvent——分发事件2)onInterceptTouchEvent——拦截事件3)onTouchEvent——事件处理总结:1)同一个事件序列是指从DOWN—MOVE—MOVE····—UP,即从手指按下到离开屏幕的过程,这个过程中可以有多个MOVE事件。2)正常情况下同一个事件只能由一个View来处理。3...

2019-07-02 10:35:24 161

原创 Android PathMeasure

PathMeasure 是针对Path的测量类,它可以测量Path的长度、某点的坐标、正切值等。api中提供了两个构造方法,这里我们来看带参数的构造方法 public PathMeasure(Path path, boolean forceClosed) { // The native implementation does not copy the path, preve...

2019-07-01 16:55:15 244

原创 Android 贝塞尔曲线——类似QQ红点拖拽效果

在Android绘制中,提供了更为丰富绘制api——Path类,包括直线,二阶贝塞尔曲线,三阶贝塞尔曲线,弧形,圆,椭圆,圆角矩形等等,path的绘制最终是调用了C中的绘制方法。下面来看一下常用的几个path的方法public void moveTo(float x, float y) { nMoveTo(mNativePath, x, y);}该方法表示设置起始点位置,会改变后...

2019-07-01 15:38:51 518

原创 Android Canvas实际操作

本篇我们来看canvas的实际应用,这里会应用到属性动画ValueAnimator类,下面先看一下具体的效果上述效果图中主要由三部分组成,第一,绘制6个小球并旋转,第二,6个小球先扩展然后收缩,第三,水波纹效果,展示一张图片。1)旋转部分首先,将6个小球分别绘制到屏幕上,调用 canvas.drawCircle()方法来绘制小球,根据api的参数,这里我们需要计算出每个小球的圆心坐标,6个...

2019-06-29 15:22:23 396

原创 Android Canvas的使用

Canvas 顾名思义,画布,在android的view绘制中应用非常广泛,通过它提供的api我们可以绘制各种图形以及对操作画布,如旋转、平移、裁剪等。Canvas操作canvas.translate(float x,float y);表示平移画布,一般来说,Android的view是从屏幕左上角即(0,0)坐标点开始绘制,调用该api后,画布的起始坐标点不在是(0,0)而变成了参数中的(...

2019-06-29 14:12:45 1174

原创 Android Paint应用三ColorFilter

本篇学习Paint的颜色过滤器ColorFilter。ColorFilter下有3个子类ColorMatrixColorFilter, LightingColorFilter, PorterDuffColorFilter ,下面逐一学习一下。1.LightingColorFilterLightingColorFilter的构造方法有三个参数,LightingColorFilter(int m...

2019-06-28 21:38:25 373

原创 Android Paint应用二PorterDuffXfermode

这一篇主要分析Paint的图层混合模式,即mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));PorterDuff.Mode 中提供了18中混合模式 CLEAR (0), SRC (1), DST (2), ...

2019-06-28 20:41:51 327

原创 Android Paint应用一

Paint 顾名思义就是画笔,可以用来设置颜色、测量文字、设置图层混合模式、颜色滤镜等等。Api中提供了两个构造方法Paint()和Paint(int flags),其中flags的值有以下几种: /** * int flags * //抗锯齿标志 * public static final int ANTI_ALIAS_FLAG = 0x01; ...

2019-06-28 16:12:29 1177

原创 AndroidView绘制流程四(布局,绘制)

在上一篇文章中,我们得知了View是如何测量的,下面去看一下布局和测绘的流程。进入ViewRootImpl的performTraversals()方法 private void performTraversals() { //... performLayout(lp, mWidth, mHeight); //... }进入per...

2019-06-27 17:16:25 205

原创 AndroidView绘制流程三(测量)

在上一篇文章中,我们分析了View的绘制流程,在ViewRootImpl类performTraversals()方法中,依次执行performMeasure()、performLayout()以及performDraw()方法,下面我们来看一下这三个方法都做了哪些事情。1)performMeasure()private void performMeasure(int childWidthMea...

2019-06-27 16:29:50 118

原创 AndroidView绘制流程二(View绘制)

在上一篇文章中,我们分析了View的添加流程,这里我们在分析View是如何绘制的。在ActivityThread类中,Activity的启动会调用handleResumeActivity()方法(ps:这里不对Activity的启动流程作分析),在该方法中,会调用 wm.addView(decor, l);方法,这里其实是将DecorView添加至Window窗口上。 @Override ...

2019-06-27 10:29:22 127

原创 AndroidView绘制流程一(View添加流程)

在Activity中,调用setContentView()方法,即可将自定义的View或者布局资源xml文件,添加至界面,那么setContentView()方法具体执行了哪些操作,view又是如何添加上去的呢。进入Activity的setContentView()方法,发现其调用了getWindow().setContentView()方法,getWindow()返回的是Window对象,而该...

2019-06-27 09:35:03 190 1

原创 USB开发:5.1系统(多个USB设备通信失败,USBInterfaceCount为0)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2019-06-27 09:12:53 1516 1

空空如也

空空如也

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

TA关注的人

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