- 博客(86)
- 资源 (5)
- 收藏
- 关注

原创 ConstraintLayout中子布局wrap_content超出屏幕处理方案
> 在ConstraintLayout中使用链式约束布局,且子控件宽度设置为wrap_content,无其他强制宽度约束,布局效果默认各子控件最大宽度/高度=ConstraintLayout宽/高,导致子控件可能超出ConstraintLayout布局范围> 注:引入版本--'androidx.constraintlayout:constraintlayout:1.1.3'
2020-08-07 15:14:05
8929

原创 使用RecyclerView实现抖音纵向滚动ViewPager效果
使用RecyclerView实现抖音纵向滚动ViewPager效果 重写LinearLayoutManager,在onAttachedToWindow方法中使用 PagerSnapHelper设置RecyclerView条目加载方式为每次滚动加载一页class MyLinearLayoutManager : LinearLayoutManager { private l...
2018-06-05 13:49:44
4752
原创 Kotlin DSL C++项目引入OpenCV异常处理
kotlin DSL(build.rgadle.kts)项目引入openCV sdk 编译提示Plugin [id: 'com.android.application', version: '8.2.1', apply: false] was not found in any of the following sources:
2024-01-11 10:03:04
1272
1
原创 自定义label组件
支持边框绘制支持shape背景(按指定圆角裁剪,矩形,圆角矩,圆形),支持指定角圆角支持自定义阴影(颜色,偏移,深度)边框颜色支持状态选择器if (helper!
2023-11-23 17:57:32
461
原创 自定义Android滑块拼图验证控件
拼图认证视图默认策略工具类参考1、继承自AppCompatImageView,兼容ImageView的scaleType设置,可设置离线/在线图片。2、通过设置滑块模型(透明背景的图形块)设置滑块(和缺省块)样式,可修改缺省块颜色。
2023-08-16 11:47:17
902
1
原创 NullPointerException ‘android.view.Window$Callback android.view.Window.getCallback()‘
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()',通过studio直接debug没有任何异常但是打包后安装运行部分页面出现一个空指针异常。
2023-07-20 10:44:25
192
原创 openCVforAndroid4.5简单集成
openCVforAndroid4.5简单集成下载资源方式一集成方式二集成下载资源方式一集成1、将下载的opencv-4.5.5-android-sdk.zip解压2、新建项目(过程省略)3、删除OpenCV-android-sdk\sdk目录下除红框内的文件,并导入到as项目中(new->module->Import Eclipse ADT project)至此可以直接引用此Module 并在java中使用opencv4 如需引入并包装opencv中jni文件,可按Open
2022-03-24 16:10:29
681
原创 自定义引导控件
自定义引导控件引导控件attrs文件使用示例xmljava监听事件引导控件1.可在XML文件中直接绑定当页需引导的控件集合2.可在java文件中手动绑定当页需引导的控件集合,亦可单独绑定/添加3.可在java文件中手动绑定当页需引导的矩阵位置集合,亦可单独绑定/添加注:绑定集合则跳转集合首位引导位置,绑定单一引导则跳转至该引导,添加时不跳转支持矩形/圆角矩形/椭圆形镂空标注引导位置支持任意View子控件做提示标注(标注位置自动计算),但标注控件需要为GuideView的ChildView
2022-01-16 17:34:38
2138
原创 多边形围点
判断某点是否位于多边形围点内方法一 @JvmStaticfun contains(loc: Location, locs: List<Location>): Boolean { val count = locs.size if (count <= 2) { return false } var nCross = 0 for (i in 0 until count) {
2021-12-17 17:52:49
1677
原创 无法访问OnReceiveContentViewBehavior
无法访问OnReceiveContentViewBehavior现象症结可能是appcompat版本过高implementation 'androidx.appcompat:appcompat:1.3.1'修复降低版本 implementation 'androidx.appcompat:appcompat:1.2.0'
2021-12-11 13:50:21
2089
原创 OkDownload下载异常ResumeFailedException: Resume failed because of RESPONSE_PRECONDITION_FAILED
OkDownload下载异常ResumeFailedException: Resume failed because of RESPONSE_PRECONDITION_FAILED异常log日志 com.liulishuo.okdownload.core.exception.ResumeFailedException: Resume failed because of RESPONSE_PRECONDITION_FAILED at com.liulishuo.okdownload.core.down
2021-11-30 16:47:21
2942
原创 手势图形密码控件
手势图形密码控件手势图形密码控件public class GestureView extends View { /** * 默认格子数 */ private static final int POINT_COUNT = 9; /** * 默认中心点的半径 */ private static final int POINT_RADIUS = 2; /** * 默认外圈半径 */ private
2021-09-09 08:53:40
223
原创 Cohen-Sutherland算法实现求线段是否过区间
Cohen-Sutherland算法实现求线段是否过区间public class SutherlandUtils { private static final int LEFT = 1; // #0001 左 private static final int RIGHT = 2; // #0010 右 private static final int BOTTOM = 4; // #0100 下 private static final int TOP =
2021-09-05 17:26:08
200
原创 Android OpenGLES使用示例
Android OpenGLES使用示例正多边形//正多边形public class Polygon { //顶点着色器(顶点画笔) public final String vertexShaderCode = "uniform mat4 uMVPMatrix;" + "attribute vec4 vPosition;" + "void main() {" +
2021-09-02 10:01:38
897
2
原创 Android APP启动优化
Android APP启动优化优化方案校验优化方案1、压缩启动页背景图片2、如果三方SDK启动过于耗时,可以Application的onCreate()方法中启动一个后台线程,在线程中初始化非即时使用的SDK3、减低启动页布局复杂度和嵌套深度4、延时启动页数据加载和逻辑处理,例如在view的post方法和activity的onAttachedToWindow()中处理。校验adb统计启动时间命令adb -s 设备ID shell am start -W {包名/启动页全路径} /
2021-06-06 11:51:17
269
5
原创 Android 应用详情中修改权限后应用崩溃
Android 应用详情中修改权限后应用崩溃一 问题描述在有fragment(没有空构造函数、或者私有空构造)的页面,应用进入后台,手动进入应用详情修改应用权限,重新打开应用,应用崩溃二 问题排查1、经网络查询得知后台修改应用权限后,重新进入页面,onCreate方法中savedInstanceState不为空。2、在没有启用fragment情况下后台修改权限,进入应用,打印onCreate方法中savedInstanceState的信息。3、复现问题流程,打印onCreate方法中sav
2021-04-13 11:52:07
2073
2
原创 Android 动态使用Iconfont图标
Android 动态使用Iconfont图标Android 动态使用Iconfont图标问题思路附Android 动态使用Iconfont图标问题每当进行增删操作后,Iconfont图标文件中Unicode编码可能改变。如何保证进行以上操作后不需要手动变更xml文件中Iconfont字符对照表?思路1、通过后台网络下载Iconfont.ttf和iconfont.json两个文件(文件来自阿里巴巴Iconfont库中Iconfont资源压缩包),可设计版本管理。2、解析iconfont.json
2021-03-08 17:42:19
740
2
转载 Android11(R)新特性梳理
Android11(R)新特性梳理一、隐私设置1、概览2、存储3、权限单次授权自动重置未使用的应用的权限权限对话框的可见性系统提醒窗口变更电话号码4、位置单次访问权限在后台访问位置信息的权限附:参考一、隐私设置1、概览Android 11 引入了一些变更和限制来加强用户隐私保护,其中包括:单次授权:让用户可以选择授予更多对位置信息、麦克风和摄像头的临时访问权限。权限对话框的可见性:一再拒绝某项权限表示用户希望“不再询问”。数据访问审核:深入了解您的应用在何处访问私密数据,无论是在您的应用自己
2020-12-13 09:47:15
5158
原创 自定义CardView
自定义CardView源码public class ShadowCardView extends FrameLayout implements LifecycleObserver { private static final int DEFAULT_VALUE_SHADOW_COLOR = R.color.shadowColor; private static final int DEFAULT_VALUE_SHADOW_CARD_COLOR = R.color.white;
2020-11-29 15:57:28
629
原创 CheckUpdate
CheckUpdate分离UI和下载,仅包含更新判断和安装逻辑;结合Rxjava链式编程JitPack引用1、工程build.gradle文件allprojects { repositories { ... maven { url 'https://jitpack.io' }//添加 } }2、Modulebuild.gradle文件dependencies { ... implementation 'com.
2020-11-13 11:50:12
820
原创 Android 发布bintray采坑记
Android 发布bintray笔记,不喜勿喷准备工作1、新建Android 工程和需要发布的依赖项目,并编译成功。2、提交GitHub仓库(可省)3、新建bintray 账号、仓库(含package和version)第一步在工程下新建"bintray.gradle"文件apply plugin: 'maven'def groupId = project.PUBLISH_GROUP_IDdef artifactId = project.PUBLISH_ARTIFACT_IDd
2020-11-12 14:08:05
430
原创 扩展EditText/TextView固定位置显示文字
文章目录扩展EditText/TextView固定位置显示文字一、问题描述二、解决方案扩展EditText/TextView固定位置显示文字一、问题描述EditText/TextView等控件在设置单行显示后,文字超过控件长度后可滑动显示。扩展EditText/TextView时,自定义绘制的文字也会在上述条件下跟随滑动。二、解决方案由TextView源码知文字滚动和Scroller滚动量有关,所以要固定文字可以在onDraw中设置canvas偏移Scroller滚动量canvas?.
2020-10-23 14:17:35
581
转载 android studio3.0+ build日志乱码解决方案
添加`-Dfile.encoding=UTF-8`到`studio64.exe.vmoptions`文件中
2020-10-19 16:55:03
298
原创 Kotlin 内联函数与普通函数区别
Kotlin 内联函数结论1、普通函数在使用函数参数后,函数参数会被编译为内部类。2、内联函数在使用函数参数后,函数参数的函数体会被拆解和内联函数体重组为新代码块,不会生成新的内部类。实验1、函数声明 //普通函数 fun inlineTest(s: String, t: (String) -> String) { println(t(s)) } //内联函数 inline fun inlineTest1(s: String, t: (St
2020-07-15 09:30:36
744
原创 java基础Integer
java基础Integerint装箱源码/** * The value of the {@code Integer}. * * @serial */ private final int value; public Integer(int value) { this.value = value; } ... public static Integer valueOf(int i) {
2020-07-13 14:08:58
161
原创 自定义注解自动代码构建
自定义注解注入新建javaLib-annotation(自定义注解)自定义注解新建javaLib-processor(注入)MyProcessor 自定义注入AnnotatedHelper 辅助生成注入文件新建javaLib-annotation(自定义注解)build.gradleapply plugin: 'java-library'...//中文乱码问题(错误:编码GBK不可映射字符)tasks.withType(JavaCompile) { options.encodi
2020-06-11 16:39:09
306
shell批处理安装apk.zip
2020-07-02
bat批处理安装apk.zip
2020-07-02
android简历app
2018-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人