- 博客(68)
- 资源 (3)
- 收藏
- 关注
原创 id: ‘com.android.application‘, version: ‘8.1.3‘, apply: false找不到错误
原因:导入模块或者项目时,生成了新的。
2024-07-02 17:16:39
1482
原创 Android安卓获取中文字符的首字母工具类(AlphabeticIndex使用)
Android安卓获取中文字符的首字母工具类(AlphabeticIndex使用)
2023-08-09 14:54:30
658
原创 扩展ExtendedFloatingActionButton滚动收缩展开行为
扩展ExtendedFloatingActionButton滚动收缩展开行为
2023-06-28 17:07:11
902
原创 在Fligma打开Android Material 3 Design组件规格颜色大小等
在Figma中查看Android Material 3 组件规格
2023-06-27 10:31:54
837
原创 解决BottomSheetDialogFragment被软键盘遮盖问题
【代码】解决BottomSheetDialogFragment被软键盘遮盖问题。
2023-02-14 23:58:03
1802
4
原创 Activity的onStart()调用时机
我们知道正常生命周期由 -> -> ,但是我们在启动的时候并没有向请求处理,而是创建了一个和:(具体启动流程文章请看,)然后会由来处理消息,此时为上面创建的对象,内部的中有, 对象为。[源码请看:] 在中间接调用处理事务:到这需要看一下和的类结构和重要常量处理 -----> 处理 -----> :修正生命周期在中需要修正生命周期请求以确保正确的生命周期循环!通过调用方法(抽象的命名=_=):经过上面的重新链接,返回的生命周期链为,接下来继续执行
2022-10-06 12:06:12
2524
原创 浅析ActivityThread#main()方法和生命周期事务处理(代码基于Android-12)
解析ActivityThread.main()方法,Activity的创建以及onCreate & onResume的调用处
2022-09-30 11:23:27
1549
1
原创 当我点击桌面App的图标时发生了什么-浅析Activity启动流程(代码基于Android-12)
当桌面图标被点击时,触发点击事件,在进入的时候调用二、APP正在热身(从点击到)(代码较长,请耐心阅读哦)2.1 是什么?是文件,用来进程之间通讯,它的实现类为,所以定位到该文件2.2 LauncherAppService.LauncherAppsImpl#startActivityAsUser()可以看到在检查一些信息后调用,这个是一个抽象类,实现类为,并且传入了一个 参数,继续跟进!2.4 是什么?一个控制启动的类…上面的方法像是把启动所需的信息全部设置到返回的对象
2022-09-29 00:34:06
2424
原创 打开AS提示错误弹框缺少com.android.tools.design.org.jetbrains.android插件
打开AS提示缺少jetbrains插件
2022-09-27 12:07:37
700
原创 Android 处理 EditText 自带的 左右 drawable 点击事件(超简单)
安卓12设置EditText左右drawable点击事件
2022-06-04 21:28:38
1945
原创 RecyclerView子项Attach动画(非 Item-Animation)
RecyclerView子项Attach动画(非 Item-Animation)好久没写博客了,太懒了哈哈哈上效果今天来一个RecyclerView子项Attach动画,比如我在上滑下滑的时候,我希望进入到屏幕的item做一些动效,比如位移差,缩放等。先看下效果吧:实现实现原理呢也是非常非常的简单,直接在RecyclerView.Adapter中重写onViewAttachedToWindow(ViewHolder)即可,这个方法可以拿到即将进入屏幕的ViewHolder: /**
2022-05-25 21:23:55
282
原创 Android N阶贝塞尔曲线构造工具
根据传入的Beizer曲线控制点来生成对应曲线上的点(n阶)object Bezier { const val X_TYPE = 1L const val Y_TYPE = 2L fun buildBezierPonit( controlPointList: List<PointF>, frame: Int ): MutableList<PointF> { val pointList: Mutable
2022-04-02 17:12:14
2877
原创 Android获取当前窗口的大小(分屏模式下也能获取到精确的值)(API 30 +)
Android获取当前窗口的大小(分屏模式下也能获取到精确的值)(API 30 +)fun Activity.getCurrentWindowSize(): Rect? { return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { windowManager.currentWindowMetrics.bounds } else null }...
2022-03-05 16:53:04
3415
原创 Android复制内容到剪切板上
Android复制内容到剪切板上fun Context.copyToClipboard(label: String, data: String) { getSystemService<ClipboardManager>()?.setPrimaryClip(ClipData.newPlainText(label, data))}
2022-03-05 16:48:14
1462
原创 Android判断当前是不是黑色主题
Android判断当前是不是黑色主题inline val Context.isDarkTheme: Boolean get() = (resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES
2022-03-05 16:45:43
1207
原创 Android判断用户是否已完成设置向导(开机向导)
Android判断用户是否已完成设置向导(开机向导)inline val Context.isDeviceProvisioned: Boolean get() = Settings.Global.getInt(contentResolver, Settings.Global.DEVICE_PROVISIONED, 0) == 1
2022-03-05 16:44:22
2008
原创 `Android`优雅的封装`ActivityResultLauncher`启动活动和请求权限,外加处理意外被`kill`情况
Android优雅的封装ActivityResultLauncher启动活动和请求权限一般我们在请求权限或者处理Activity返回结果的时候都会使用Activity#onActivityResult()和Activity#onRequestPermissionResult()这俩个方法,如今谷歌已经提供了新的请求方法:https://developer.android.com/training/permissions/requesting?hl=zh-cn。这篇文章是解决什么的?我想把每个处理结
2022-03-05 16:25:40
7524
原创 Android 11+ 无线调试开启
Android 11+ 无线调试三步完成连接手机和电脑连接到同一个网络并打开开发者模式中的无线调试选项;配对:adb pair 并输入配对码code连接:abd connect第一步:手机(android 11+)和电脑连接到同一个网络(如果有多个手机和模拟器需要区分),然后打开手机开发者模选项中的无线调试第二步 + 第三步点击使用配对码配对设备,会弹出一个对话框:然后我们打开控制台做俩件事:adb pair IP地址配对成功之后会显示Successfully并且手机上的
2022-02-07 10:12:56
4586
原创 Android(12)Preference(三)抽象管理
Android(12)Preference(三)抽象管理问题发生背景:假如我们现在有一个设置页面,虽然我们可以通过获取Preference实例去set一些Click、Change监听,但是当我们的业务逻辑增加并且复杂的时候,会发现我们每次都要先去找到一个实例才能去设置,这个时候就需要分离UI逻辑和数据逻辑了,比如我希望点击的时候只是通过传过来的key判断UI的变化,是跳转到下一个设置页面还是弹出一个对话框等;点击Switch改变值的时候通过key判断,意思就是把原来的点击处理一票子逻辑拆分成俩部分方便管
2022-02-01 10:09:32
2700
原创 Android(12)自定义 Preference(二)
Android(12)自定义 Preference(二)简单的效果效果演示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apgIG18e-1643643122163)(C:\Users\Yansw1\Desktop\效果演示1.gif)]使用到的控件(原生):CoordinatorLayoutCollapsingToolbarLayoutAppBarLayoutToolbarNestedScrollViewFragmentContainerView准备
2022-01-31 23:32:52
3399
原创 安卓NavigationView顶到状态栏方法(Android R以上)
效果示意图:Ok,可以先创建一个kt文件,把这些扩展方法放进去。核心思路就是注册Window的Insert设置监听。data class ViewPaddingData( val left: Int, val top: Int, val right: Int, val bottom: Int)/** * 可以对 [Activity] 的 [Window] 添加 [WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIM
2022-01-12 23:16:54
1760
2
原创 Kotlin解决烦人的?.
internal inline fun <T, R> T?.runIfNotNull(block: T.() -> R): R? = this?.block()使用T.runIfNotNull{ }代替 ?.()any.runIfNotNull { }any?.apply{ }
2021-12-15 21:32:31
2302
原创 AS(Android Studio)编辑区颜色的设置
先来个设置效果图,看看是不是你们想要设置的地方的哈(其他颜色的网上的太多了,我这里贴一丢丢其他视图的颜色,都可以去这个general里试试)1、当前编辑文件Tab中的文字颜色和背景颜色2、当前行的行数字颜色 + 其他行的行数字颜色3、左边边界和下边界颜色 + 左边边界某一块被鼠标悬停选中的颜色4、方法分隔线的颜色5、右边边界指示线的颜色喜欢的可否给个收藏???????????????????????...
2021-11-04 00:45:48
5689
4
原创 Android事件分发
为什么要有事件分发机制?安卓上面的View是树形结构的,View可能会重叠在一起,当我们点击的地方有多个View都可以响应的时候,这个点击事件应该给谁呢?为了解决这一个问题,就有了事件分发机制。如下图,View是一层一层嵌套的,当手指点击 View1 的时候,下面的ViewGroupA、 RootView 等也是能够响应的,为了确定到底应该是哪个View处理这次点击事件,就需要事件分发机制来帮忙。View的结构:我们的View是树形结构的,在上一个问题中实例View的结构大致如下:layout文
2021-10-24 23:26:08
239
原创 ViewPager2页面指示器(圆形)
ViewPager2页面指示器(圆形)用法:Vp2IndicatorView indicator = findViewById(R.id.indi);ViewPager2 viewPager2 = findViewById(R.id.vp);List<Integer> list = new ArrayList<>();list.add(R.drawable.se1);list.add(R.drawable.se2);list.add(R.drawable.se3);
2021-10-22 00:09:28
2161
原创 Android基础弹框实现(带小箭头)待实现其他类型
基础弹框实现XPopupShowmakerimport android.view.View;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import androidx.annotation.ColorInt;import androidx.annotation.IntDef;public interface ILayout { int HIDE_RADIUS_S
2021-10-19 00:35:00
1119
原创 Android环形菜单(CircleMenuView )实现
Android环形菜单实现参考https://github.com/Hitomis/CircleMenu ,在原自定义View中修改了一些代码效果图:使用方式:public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private CircleMenuView circleMenu; @Override pro
2021-10-17 20:16:39
2145
2
原创 Android设备显示相关帮助类
public class DisplayHelper { /** * 屏幕密度,系统源码注释不推荐使用 */ public static final float DENSITY = Resources.getSystem() .getDisplayMetrics().density; /** * 获取 DisplayMetrics * * @return */ public s
2021-10-14 23:11:32
342
原创 Android 颜色帮助类
public class ColorHelper { public static int setColorAlpha(@ColorInt int color, float alpha) { return setColorAlpha(color, alpha, true); } /** * 设置颜色的alpha值 * * @param color 需要被设置的颜色值 * @param alpha 取值为[0,1],
2021-10-14 22:59:26
134
GIF制作工具(无水印).zip
2020-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人