- 博客(63)
- 资源 (26)
- 收藏
- 关注
原创 全面屏手势导航栏适配
由于全面屏手势是Android9开始出现的,所以验证需要从Android9的机型测到最新的15看时机效果。这里的代码片段是在检查Activity的窗口是否设置了FLAG_KEEP_SCREEN_ON标志。true:全屏,当前activity没有显示状态栏 false:有状态栏。识别是否全面屏手势场景,然后识别手势指示条是否显示,然后再获取指示条高度。
2025-02-25 21:00:00
244
原创 Android计算点击坐标是否在圆内和椭圆内
最近工作需要,顺带学了波数学。要判断点是否在圆内,可以使用圆的几何性质:如果点的坐标(x, y)满足(x - 圆心x)^2 + (y - 圆心y)^2 < 半径^2,则该点在圆内。
2024-06-10 12:00:00
359
原创 LeetCode 9 - 回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
2024-06-09 10:00:00
450
原创 LeetCode 7- 整数反转
拿到整数x后,先拆分成数组,然后反向遍历,注意下负值,然后通过java自带的转换成int就行,超出范围的默认0。给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [-2。假设环境不允许存储 64 位整数(有符号或无符号)。还是得走正规思路:通过官方解析得出对应的思路。- 1] ,就返回 0。
2024-06-08 09:00:00
342
原创 LeetCode 3038 - 相同分数的最大操作数目 I
删除前两个元素,分数为 3 + 2 = 5 ,nums = [1,4,5]。-删除前两个元素,分数为 3 + 2 = 5 ,nums = [6,1,4]。3、长度边距判断,长度不够直接返回次数,值的和不等于首次的和,也直接返回次数。-删除前两个元素,分数为 1 + 4 = 5 ,nums = [5]。由于下一次操作的分数与前一次不相等,我们无法继续进行任何操作。输入:nums = [3,2,1,4,5]输入:nums = [3,2,6,1,4]2、记录首次元素的和,并记录次数1。
2024-06-07 17:38:19
376
1
原创 LeetCode 4 - 寻找两个正序数组的中位数
解题思路:如果两个数组都是0,直接返回0,然后创建新数组,把nums1和nums2的元素都添加进去,然后通过sort重新排序(升序),然后判断奇偶,奇数取中间值,偶数取两个中间值和的平均数。给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。算法的时间复杂度应该为 O(log (m+n))。
2024-06-07 16:23:38
291
原创 LeetCode 2395 - 和相等的子数组
给你一个下标从 0 开始的整数数组 nums ,判断是否存在 两个 长度为 2 的子数组且它们的 和 相等。注意,这两个子数组起始位置的下标必须 不相同。如果这样的子数组存在,请返回 true,否则返回 false。子数组 是一个数组中一段连续非空的元素组成的序列。
2023-03-27 19:30:00
692
原创 LeetCode 2 - 两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
2023-03-02 20:27:57
386
原创 Android app本地切换logo和名称
首先呢,在app的AndroidManifest.xml文件里,配置需要替换的logo和app名称eg:下面配置了一套默认的,两套用于切换的icon和名称android:enabled: 设为“true”时,就会启用当前别名的Activity,和当前的icon和当前的应用名称: 设为“false”时,表示停止使用当前别名的Activityandroid:icon:当前别名的应用图标android:label:当前别名的应用名称android:name:别名,命名规则同Activelyandroi
2022-02-10 10:36:44
2530
原创 LeetCode 495 - 提莫攻击
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。给你一个 非递减 的整数数组 timeSeri
2021-11-10 21:02:36
184
原创 LeetCode 367 - 有效的完全平方数
给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false提示:1 <= num <= 2^31 - 1思路:硬怼,初步就1 4 9 16,分析可以得出,除了1比较特殊,其他都可以算出来。 public boolean isPerfectSquare(int num
2021-11-04 20:58:25
132
原创 LeetCode 496 - 下一个更大元素 I
给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例 1:输入: nums1 = [4,1,2], nums2 = [1,3,4,2].输出: [-1,3,-1]解释:对于 num1 中的数字 4 ,你无法在第二个数组中找到下一个更
2021-10-26 20:26:40
117
原创 LeetCode 229 - 求众数 II
给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。示例 1:输入:[3,2,3]输出:[3]示例 2:输入:nums = [1]输出:[1]示例 3:输入:[1,1,1,3,3,2,2,2]输出:[1,2]提示:1 <= nums.length <= 5 * 104-109 <= nums[i] <= 109思路:首先还是得读懂题目的意思,给定一个长度为 n 的整数数组,找出里面出现次数超过 n/3 次的元素,意思就是元素个数
2021-10-25 21:11:04
194
原创 LeetCode 240 - 搜索二维矩阵 II
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。示例 1:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5输出:true示例 2:输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,
2021-10-25 18:55:11
159
原创 LeetCode 66 - 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1 <= digits.
2021-10-21 21:16:45
145
原创 LeetCode 453 - 最小操作次数使数组元素相等
给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。示例 1:输入:nums = [1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]示例 2:输入:nums = [1,1,1]输出:0提示:n == nums.length1 <= nums.length <= 105-1
2021-10-20 20:51:44
256
原创 LeetCode 171 - Excel 表列序号
Excel 表列序号 (LeetCode)题目 给你一个字符串 columnTitle ,表示 Excel 表格中的列名称。返回该列名称对应的列序号。例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: columnTitle = “A”输出: 1示例 2:输入: columnTitle = “AB”输出: 28示例 3:输入: columnTitle .
2021-10-19 20:58:26
263
原创 解决EditText和ScrollView的滑动冲突
不累赘,直接上方案这里还是说下我们主要用到的方法是ViewParent.requestDisallowInterceptTouchEvent /** * Called when a child does not want this parent and its ancestors to * intercept touch events with * {@link ViewGroup#onInterceptTouchEvent(MotionEvent)}. *
2020-07-17 12:19:35
488
原创 Android字体加粗的几种样式
起因:因为产品对字体加粗效果不满意,觉得没有别人家的粗,所以呢,作者在网上查找了些资料(ps:就几句代码),整理了一下,放出来,给需要的同道中人使用:效果,老规矩,先上图:由图可知,就三种加粗效果(第一行是默认的大小),然后慢慢变粗的,字体大小都一样哦。下面贴代码啦:java代码 //第二行效果 tv1.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); //第三行效果 tv2.getPaint().se
2020-07-02 20:02:09
6356
1
原创 RecyclerView的ItemDecoration简易使用(去除RecyclerView(任意一条)分割线)
项目中经常遇到给RecyclerView左右设置padding、layout_margin,有时候会导致item不能滑动到边缘,设置ItemDecoration呢,又容易第一个item和最后一个item的边缘和item之间的间距不一样所以就初步使用下面的方法,可以自己设置每个item的padding值,不需要再在RecyclerView里设置啦,代码没有封装,只有初步使用,经常使用的话,建议提取出来 RecyclerView.ItemDecoration itemDecoration = new R
2020-06-24 14:43:58
1229
原创 productFlavors 多渠道打包,一机多包
直接上链接:多渠道打包:首先,是选择哪种第三方平台的统计,下面以友盟+为例,这里就不描述怎么集成友盟+了,直接进入正题吧记得在清单文件配置下:基本就OK了,打包的时候全选就行了。一机多包:有时候,需要在手机上安装一个测试环境的包,然后一个正式环境的包,这时候,就需要手机上面安装两个App了。上图:每次选择对应的Build版本就行了:...
2020-06-06 11:52:43
271
原创 Activity的事件分发源码分析
Activity的事件分发流程图dispatchTouchEvent(MotionEvent event)onTouchEvent(MotionEvent event)首先我们在Activity中重写dispatchTouchEvent方法,然后点击super.dispatchTouchEvent(ev)进入系统源码,就是Activity的dispatchTouchEvent(Motion...
2020-03-27 23:44:25
1165
原创 事件分发的基础知识
什么是事件分发用户通过屏幕与手机交互的时候,每一次点击、长按、移动等都是一个事件。事件分发机制:某一个事件从屏幕传递到各个View,由View来使用这一事件(消费事件)或者忽略这一事件(不消费事件),这整个过程的控制。事件分发的对象是谁系统把事件封装为MotionEvent对象,事件分发的过程就是MotionEvent分发的过程。事件的类型按下(ACTION_DOWN)移动(ACT...
2020-03-27 23:19:20
231
原创 android 字符串特定字符变色
先上效果:代码实现:text 数据源keyword 要变颜色的字符串color_FA9A3A 要变的颜色style_color_FA9A3A 也可以改变字体的size和其他的熟悉,自己设置 public SpannableString matcherSearchText( String text, String keyword) { SpannableStrin...
2019-07-10 14:46:55
2052
3
原创 使用adb指令通过Studio往机顶盒上安装apk
1.电脑与机顶盒建立连接adb connect 172.16.14.2092.安装应用adb install E:\003.apk E:\003.apk 路径+名称 003.apk 安装apk的全称3.最后肯定是断开adb连接了adb disconnect 172.16.14.209...
2019-02-28 15:44:21
2048
原创 activity管理类
记录acticity的启动记录,用于退出程序时,关闭所有acticity单纯 mark 一下,下次直接用:import android.app.Activity;import java.util.ArrayList;import java.util.List;/** * @author CGG * activity管理类 * Created by USER on 2019/1/16...
2019-01-31 11:22:55
306
原创 解决Android Webview 加载一些网页出现白板现象
在最近项目中,调用第三方网页加载在Webview中,一直打不开,显示白板,但是浏览器却可以打开,一脸懵逼,先上码: WebSettings settings = wvPingduoduo.getSettings(); // 支持javascript settings.setJavaScriptEnabled(true); // 设置可以支持...
2018-07-07 11:19:55
1139
原创 ant 一键自定义打包 打包转Gradle 一键自定义打包
java项目打包异常:java.lang.OutOfMemoryError: GC overhead limit exceeded android-sdk-windows\platforms\android-4(这个目录根据你的情况来定,我用的是android 1.6)\tools\dx.bat 加入: set javaOpts=-Xmx512M(可以设置更大点) Sdk\build-too
2018-05-19 15:33:58
770
原创 android studio混淆打包之transformClassesAndResourcesWithProguardForRelease 错误
在android打包发布的时候,往往需要对app进行压缩,混淆,去除无效文件等,以保证发布出去的app占用资源尽可能的小。因此需要我们对gradle进行必要的配置(以android studio打包为例)。1、build.gradle 配置 buildTypes{ debug { //多余的参数 minifyEnabled...
2018-05-08 19:25:32
9580
2
原创 Android apk 反编译
前段时间反编译了一次,没想到,最近又有着需求,所以整理一下:一、工具(百度一下都有:点击下载啦,良心价)apktool (资源文件获取) 资源文件获取,可以提取出图片文件和布局文件进行使用查看dex2jar(源码文件获取) 将apk反编译成java源码(classes.dex转化成jar文件) jd-gui (源码查看) 查看APK中classes.dex转化成出...
2018-03-28 15:46:05
503
原创 浅谈Android MVC 设计模式
虽然有用过mvc都是一直没有好好分析,解读。下面意思意思…MVC(Model-View-Control Model:模型 View:视图 Control:控制器) 设计模式表明,应用的任何对象,归根结底都属于模型对象、视图对象以及控制对象中的一种。 M(Model:模型)模型对象存储着应用的数据和业务逻辑。模型对象通常用来映射与应用相关的一些事物,如用户、商店里的商品、服务器...
2018-03-26 14:33:18
433
原创 Android开发:清空缓存功能的实现
APP项目中,一般会自带计算缓存的大小,然后点击确定清空缓存。虽然Android提供了,查询的方法和清理的方法,但是封装一下还是好的。 获取缓存大小 //Context.getExternalFilesDir() –> SDCard/Android/data/你的应用的包名/files/ 目录,一般放一些长时间保存的数据 //Context.getExter...
2018-03-19 17:53:14
3156
原创 字符串(含中文)转16进制,16进制转字符串(含中文)
字符串(含中文)转16进制public static byte[] SendS(String str){ byte[] ok = new byte[0]; try { ok = str.getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { ...
2018-03-15 17:45:55
4370
原创 递归之初体验
刚刚遇到一个需求,需要转义字符,比较有意思: 接收一段字符串 eg1:“中文,Chaina\,\,\,\,,哈哈” eg2:“aa,aa\\,bb,cc\\\\,dd,6,hh”根据“,”分隔字符串,但是含有转义字符“\”的,不用分隔,去掉转义字符“\”String[] array =new String[“中文”,”Chaina,,,, “,”哈哈” ];(像这样)...
2018-03-15 17:24:48
322
原创 Failed to allocate a 3112972 byte allocation with 2019776 free bytes and 1972KB until OOM
异常:java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Failed to allocate a 3112972 byte allocation with 2019776 free bytes and 1972KB until OOMOOM:Android 内存溢出(Java的这个异常是指,内存申请失败,前面那个
2018-01-22 09:38:28
3575
1
原创 在Github新建项目
登录github账号,点击New repository,创建项目 如图,添加项目名称和描述,然后创建项目 上传项目到github启动git客户端 git init //把这个目录变成Git可以管理的仓库 git add README.md //文件添加到仓库 git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部ad
2018-01-10 14:57:03
7846
原创 Python安装入门、PyCharm安装
安装Python1、下载安装包 https://www.python.org/downloads/ 2、安装 默认安装路径:C:\Python36-32 3、配置环境变量 【右键计算机】–》【属性】–》【高级系统设置】–》【高级】–》【环境变量】–》【在第二个内容框中找到 变量名为Path 的一行,双击】 –> 【Python安装目录追加到变值值中,用 ; 分割】
2018-01-09 11:19:56
527
Android app本地切换logo和名称
2022-02-14
PkProgress.zip
2021-06-05
ProductFlavors.zip
2020-06-06
com.android.ide.eclipse.ndk_23.0.4
2018-04-25
解决virtualbox不能为虚拟电脑打开一个新任务。
2016-10-18
StickyHeaderListView
2016-05-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人