- 裁剪: 裁剪后,canvas只能在裁剪出的这块rectF矩形上进行绘制。 区域: canvas图层上的一块封闭区域,如下rect2这个矩形区域,drawRegion绘制出这个区域。 package com.xiaowei.lsn7_canvas; import android.content.Context;import android.graphics.B... 裁剪: 裁剪后,canvas只能在裁剪出的这块rectF矩形上进行绘制。 区域: canvas图层上的一块封闭区域,如下rect2这个矩形区域,drawRegion绘制出这个区域。 package com.xiaowei.lsn7_canvas; import android.content.Context;import android.graphics.B...
- TabLayout是Material Design设计原则中推出的一个新型标题栏,最常见的例子就是结合Viewpager来使用,当滑动Viewpager时,标题栏会跟随着切换,反过来当选中某一个标题栏时Viewpager页面也会跟随着切换到指定内容。 拒绝所谓的民间高手的自定义Tablayout滑动效果,让我们接受谷歌大牛的稳定控件吧。 下面是Tablayout... TabLayout是Material Design设计原则中推出的一个新型标题栏,最常见的例子就是结合Viewpager来使用,当滑动Viewpager时,标题栏会跟随着切换,反过来当选中某一个标题栏时Viewpager页面也会跟随着切换到指定内容。 拒绝所谓的民间高手的自定义Tablayout滑动效果,让我们接受谷歌大牛的稳定控件吧。 下面是Tablayout...
- 上篇文章介绍了RecyclerView控件的基本用法,我们已经知道它是一个ListView的升级版,可轻松的展示各种列表风格,例如水平列表、垂直列表、网格列表、瀑布流列表等。但是,我们项目中仅仅展示数据是不够的,我们经常还有列表项的单击事件、添加列表项、删除列表项等。今天我们就着重讲解一下RecyclerView列表项的单击事件、添加列表项、删除列表项。 效果:... 上篇文章介绍了RecyclerView控件的基本用法,我们已经知道它是一个ListView的升级版,可轻松的展示各种列表风格,例如水平列表、垂直列表、网格列表、瀑布流列表等。但是,我们项目中仅仅展示数据是不够的,我们经常还有列表项的单击事件、添加列表项、删除列表项等。今天我们就着重讲解一下RecyclerView列表项的单击事件、添加列表项、删除列表项。 效果:...
- 1. Path概念 用Path定义一个图形,然后用canvas.drawPath(...)函数来绘制这个图形。例如绘制一个圆。Path可以绘制各种图形,如二次,三次贝塞尔曲线,圆形、多边形,三角形,五角星等几何形状。 public class PathOpView extends View { private Paint mPaint; public PathOpVi... 1. Path概念 用Path定义一个图形,然后用canvas.drawPath(...)函数来绘制这个图形。例如绘制一个圆。Path可以绘制各种图形,如二次,三次贝塞尔曲线,圆形、多边形,三角形,五角星等几何形状。 public class PathOpView extends View { private Paint mPaint; public PathOpVi...
- 前面有篇文章讲了 smail代码的简单修改,其实它有3个apk可以用来练手,今天来讲第二个apk,也是比较简单,大佬请飘过。 样本地址: https://github.com/wyhuan/owasp-mstg/blob/master/Crackmes/Android/Level_02/UnCrackable-Level2.apk 依然下载到手机并安装,打开看看... 前面有篇文章讲了 smail代码的简单修改,其实它有3个apk可以用来练手,今天来讲第二个apk,也是比较简单,大佬请飘过。 样本地址: https://github.com/wyhuan/owasp-mstg/blob/master/Crackmes/Android/Level_02/UnCrackable-Level2.apk 依然下载到手机并安装,打开看看...
- 这次我们做一个动画框架,配置scrollview里包含的控件的自定义属性,就可以实现滑动Scrollview时,里面的控件根据滑动的距离执行各自的动画进度。scrollivew里包含的这些控件可以是任意常用的控件,如 imageView,Button,TextView等。我们将给这些普通的系统控件配置自定义属性!看到这里是不是觉得无法实现,因为系统的Image... 这次我们做一个动画框架,配置scrollview里包含的控件的自定义属性,就可以实现滑动Scrollview时,里面的控件根据滑动的距离执行各自的动画进度。scrollivew里包含的这些控件可以是任意常用的控件,如 imageView,Button,TextView等。我们将给这些普通的系统控件配置自定义属性!看到这里是不是觉得无法实现,因为系统的Image...
- 声明:本文只做技术交流,如有侵权,请告知删除,谢谢。 frida入门教程请参考Loco大神的文章,传送门: https://mp.weixin.qq.com/s/bfurT1h32A1bLiBHa73oJA 今天使用frida框架做一个简单的破解,假定你的手机已经root,电脑已经安装java环境和jadx工具,样例是52破解里面的crakeme,链接如下: ... 声明:本文只做技术交流,如有侵权,请告知删除,谢谢。 frida入门教程请参考Loco大神的文章,传送门: https://mp.weixin.qq.com/s/bfurT1h32A1bLiBHa73oJA 今天使用frida框架做一个简单的破解,假定你的手机已经root,电脑已经安装java环境和jadx工具,样例是52破解里面的crakeme,链接如下: ...
- 今天我们来通过一个实例来讲解一下view的测量绘制过程。我们打算做一个瀑布流标签,就是各个标签的宽高都不一样,当一行占满时就自动换行,示意图如下: ,这个与Grid是有区别的,Grid是每行有固定的列数,而我们这个瀑布流标签是一行占满为止才换行。我们打算做一个自定义容器,这个容器内部的各个子控件会自动按瀑布流标签的形式摆放,对各个子控件的类型没有要求... 今天我们来通过一个实例来讲解一下view的测量绘制过程。我们打算做一个瀑布流标签,就是各个标签的宽高都不一样,当一行占满时就自动换行,示意图如下: ,这个与Grid是有区别的,Grid是每行有固定的列数,而我们这个瀑布流标签是一行占满为止才换行。我们打算做一个自定义容器,这个容器内部的各个子控件会自动按瀑布流标签的形式摆放,对各个子控件的类型没有要求...
- 学了Android开发这么久,Google新出的许多控件在实际项目中几乎没有用过,深感惭愧。今天就来介绍一下控件RecyclerView,简单的说就是列表控件ListView的升级版,还是一个列表控件,只是性能和扩展性远远超过了ListView列表控件。这么好的升级版控件竟然没有使用到项目中,我这个开发人员的水平是不是太差了,是不是没能与时俱进。好吧,话说多了... 学了Android开发这么久,Google新出的许多控件在实际项目中几乎没有用过,深感惭愧。今天就来介绍一下控件RecyclerView,简单的说就是列表控件ListView的升级版,还是一个列表控件,只是性能和扩展性远远超过了ListView列表控件。这么好的升级版控件竟然没有使用到项目中,我这个开发人员的水平是不是太差了,是不是没能与时俱进。好吧,话说多了...
- Parcelable 这是一个接口,它的实例可以写入Parcel或从Parcel恢复。实现Parcelable的类必须要有一个实现了Parcelable.Creator接口的类型的非空静态字段CREATOR,这个字段是帮忙从一个Parcel产生一个Parcelable类的实例。 public class MyParcelable implements Parcela... Parcelable 这是一个接口,它的实例可以写入Parcel或从Parcel恢复。实现Parcelable的类必须要有一个实现了Parcelable.Creator接口的类型的非空静态字段CREATOR,这个字段是帮忙从一个Parcel产生一个Parcelable类的实例。 public class MyParcelable implements Parcela...
- 其实自定义ViewGroup与自定义View很像。它们本质都是View,区别在于ViewGroup是用来组织显示View的。自定义ViewGroup也有几个关键的方法需要实现,而且onLayout方法是必须实现的。在自定义ViewGroup中我们常常需要重写onMeasure、onLayout,而onDraw一般不需要重写。 onMeasure(int widthMe... 其实自定义ViewGroup与自定义View很像。它们本质都是View,区别在于ViewGroup是用来组织显示View的。自定义ViewGroup也有几个关键的方法需要实现,而且onLayout方法是必须实现的。在自定义ViewGroup中我们常常需要重写onMeasure、onLayout,而onDraw一般不需要重写。 onMeasure(int widthMe...
- Handler的用途 Handler是子线程(工作线程)与主线程之间的通信桥梁。由于更新UI只能在主线程里完成,所以在子线程里的工作完成后,可以通过Handler来通知主线程更新UI组件。 什么是主线程呢? 当app应用程序启动时创建的第1个线程就是主线程(MainThread)又叫UI线程,因为它专门用于UI的操作。 什么是子线程呢? 子线程,又因其作用而被... Handler的用途 Handler是子线程(工作线程)与主线程之间的通信桥梁。由于更新UI只能在主线程里完成,所以在子线程里的工作完成后,可以通过Handler来通知主线程更新UI组件。 什么是主线程呢? 当app应用程序启动时创建的第1个线程就是主线程(MainThread)又叫UI线程,因为它专门用于UI的操作。 什么是子线程呢? 子线程,又因其作用而被...
- 项目里的一个fragment有一个EditText输入框,在输入文字后,做了其他操作,但是输入框一直有光标在闪动。当再点击输入框时,软键盘死活不弹出来。除非切换到其他页面再返回来,才可以弹出。 今天终于明白了为什么。因为之前的焦点没有失去,所以当再点击输入框时,无法触发新的焦点事件,所以键盘就不会弹出来了。解决的办法就是要清除之前的焦点。 第一步: 在布局文件中,把Ed... 项目里的一个fragment有一个EditText输入框,在输入文字后,做了其他操作,但是输入框一直有光标在闪动。当再点击输入框时,软键盘死活不弹出来。除非切换到其他页面再返回来,才可以弹出。 今天终于明白了为什么。因为之前的焦点没有失去,所以当再点击输入框时,无法触发新的焦点事件,所以键盘就不会弹出来了。解决的办法就是要清除之前的焦点。 第一步: 在布局文件中,把Ed...
- 内存泄漏的本质 申请了的内存在不再使用时无法回收。 Android应用程序内存泄漏的含义 Android系统为每个应用程序都分配了相应限额的内存。当应用程序中产生的内存泄漏较多时,将会导致应用程序运行所需要的内存超过系统为其分配的限额,这时应用程序就会Crash(崩溃)。 常见引发内存泄漏的情况 集合类static关键字修饰的成员变量非静态内部类 / 匿名类资... 内存泄漏的本质 申请了的内存在不再使用时无法回收。 Android应用程序内存泄漏的含义 Android系统为每个应用程序都分配了相应限额的内存。当应用程序中产生的内存泄漏较多时,将会导致应用程序运行所需要的内存超过系统为其分配的限额,这时应用程序就会Crash(崩溃)。 常见引发内存泄漏的情况 集合类static关键字修饰的成员变量非静态内部类 / 匿名类资...
- Android 9 (API 28)或以上的Android设备上,要求使用HTTPS进行网络请求。那么如何解决这种问题呢?大致可以从四个方面来解决: 1. 使用https请求 2. targetSdkVersion 降到27或以下 3. 使用network_security_config.xml配置文件 在res目录下新建一个xml目录,然后在xml目录里创建netwo... Android 9 (API 28)或以上的Android设备上,要求使用HTTPS进行网络请求。那么如何解决这种问题呢?大致可以从四个方面来解决: 1. 使用https请求 2. targetSdkVersion 降到27或以下 3. 使用network_security_config.xml配置文件 在res目录下新建一个xml目录,然后在xml目录里创建netwo...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签