自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (3)
  • 收藏
  • 关注

原创 Android安卓获取中文字符的首字母工具类(AlphabeticIndex使用)

Android安卓获取中文字符的首字母工具类(AlphabeticIndex使用)

2023-08-09 14:54:30 396

原创 Android端上传文件到Spring Boot后端

Android端上传文件到Spring boot端

2023-07-21 17:54:29 423

原创 扩展ExtendedFloatingActionButton滚动收缩展开行为

扩展ExtendedFloatingActionButton滚动收缩展开行为

2023-06-28 17:07:11 590

原创 在Fligma打开Android Material 3 Design组件规格颜色大小等

在Figma中查看Android Material 3 组件规格

2023-06-27 10:31:54 630

原创 Android Bitmap与Base64互转

【代码】Android Bitmap与Base64互转。

2023-06-08 18:32:52 967

原创 Android 12+ 选取图片并转为Bitmap

Android 12+ 选取图片并转为Bitmap。

2023-06-08 18:30:50 551

原创 Android Studio 无法运行Java类的main方法

在Android Studio中运行Java main方法

2023-06-05 14:54:09 542

原创 解决BottomSheetDialogFragment被软键盘遮盖问题

【代码】解决BottomSheetDialogFragment被软键盘遮盖问题。

2023-02-14 23:58:03 1163 5

原创 浅析RecyclerView预加载RV-Prefetch 机制

RecyclerView预加载 Prefetch机制

2023-01-21 22:10:04 1460

原创 Activity的onStart()调用时机

我们知道正常生命周期由 -> -> ,但是我们在启动的时候并没有向请求处理,而是创建了一个和:(具体启动流程文章请看,)然后会由来处理消息,此时为上面创建的对象,内部的中有, 对象为。[源码请看:] 在中间接调用处理事务:到这需要看一下和的类结构和重要常量处理 -----> 处理 -----> :修正生命周期在中需要修正生命周期请求以确保正确的生命周期循环!通过调用方法(抽象的命名=_=):经过上面的重新链接,返回的生命周期链为,接下来继续执行

2022-10-06 12:06:12 2003

原创 自定义Typora主题和动态调试

自定义typora主题颜色字体样式什么的,在typora编辑器中使用开发者模式动态调试

2022-10-05 10:55:31 711

原创 浅析ActivityThread#main()方法和生命周期事务处理(代码基于Android-12)

解析ActivityThread.main()方法,Activity的创建以及onCreate & onResume的调用处

2022-09-30 11:23:27 1028 1

原创 当我点击桌面App的图标时发生了什么-浅析Activity启动流程(代码基于Android-12)

当桌面图标被点击时,触发点击事件,在进入的时候调用二、APP正在热身(从点击到)(代码较长,请耐心阅读哦)2.1 是什么?是文件,用来进程之间通讯,它的实现类为,所以定位到该文件2.2 LauncherAppService.LauncherAppsImpl#startActivityAsUser()可以看到在检查一些信息后调用,这个是一个抽象类,实现类为,并且传入了一个 参数,继续跟进!2.4 是什么?一个控制启动的类…上面的方法像是把启动所需的信息全部设置到返回的对象

2022-09-29 00:34:06 1419

原创 打开AS提示错误弹框缺少com.android.tools.design.org.jetbrains.android插件

打开AS提示缺少jetbrains插件

2022-09-27 12:07:37 588

原创 Android 处理 EditText 自带的 左右 drawable 点击事件(超简单)

安卓12设置EditText左右drawable点击事件

2022-06-04 21:28:38 1700

原创 Android 创建带 alpha(透明度)值的 颜色资源

安卓12创建带透明度颜色的资源文件

2022-06-04 20:45:11 649

原创 FloatingActionButton设置圆角(超级简单)

Android 悬浮按钮 FloatingActionButton 设置四周圆角

2022-06-04 10:28:49 1062

原创 RecyclerView子项Attach动画(非 Item-Animation)

RecyclerView子项Attach动画(非 Item-Animation)好久没写博客了,太懒了哈哈哈上效果今天来一个RecyclerView子项Attach动画,比如我在上滑下滑的时候,我希望进入到屏幕的item做一些动效,比如位移差,缩放等。先看下效果吧:实现实现原理呢也是非常非常的简单,直接在RecyclerView.Adapter中重写onViewAttachedToWindow(ViewHolder)即可,这个方法可以拿到即将进入屏幕的ViewHolder: /**

2022-05-25 21:23:55 202

原创 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 2772

原创 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 3022

原创 Android复制内容到剪切板上

Android复制内容到剪切板上fun Context.copyToClipboard(label: String, data: String) { getSystemService<ClipboardManager>()?.setPrimaryClip(ClipData.newPlainText(label, data))}

2022-03-05 16:48:14 1354

原创 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 1126

原创 Android判断用户是否已完成设置向导(开机向导)

Android判断用户是否已完成设置向导(开机向导)inline val Context.isDeviceProvisioned: Boolean get() = Settings.Global.getInt(contentResolver, Settings.Global.DEVICE_PROVISIONED, 0) == 1

2022-03-05 16:44:22 1733

原创 自定义`RecyclerView`的`ItemAnimator`子项动画(一)

研究一下一个RecyclerView子项动画库

2022-03-05 16:37:27 1176

原创 `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 6400

原创 Android 11+ 无线调试开启

Android 11+ 无线调试三步完成连接手机和电脑连接到同一个网络并打开开发者模式中的无线调试选项;配对:adb pair 并输入配对码code连接:abd connect第一步:手机(android 11+)和电脑连接到同一个网络(如果有多个手机和模拟器需要区分),然后打开手机开发者模选项中的无线调试第二步 + 第三步点击使用配对码配对设备,会弹出一个对话框:然后我们打开控制台做俩件事:adb pair IP地址配对成功之后会显示Successfully并且手机上的

2022-02-07 10:12:56 3833

原创 Android(12)Preference(三)抽象管理

Android(12)Preference(三)抽象管理问题发生背景:假如我们现在有一个设置页面,虽然我们可以通过获取Preference实例去set一些Click、Change监听,但是当我们的业务逻辑增加并且复杂的时候,会发现我们每次都要先去找到一个实例才能去设置,这个时候就需要分离UI逻辑和数据逻辑了,比如我希望点击的时候只是通过传过来的key判断UI的变化,是跳转到下一个设置页面还是弹出一个对话框等;点击Switch改变值的时候通过key判断,意思就是把原来的点击处理一票子逻辑拆分成俩部分方便管

2022-02-01 10:09:32 2621

原创 Android(12)自定义 Preference(二)

Android(12)自定义 Preference(二)简单的效果效果演示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apgIG18e-1643643122163)(C:\Users\Yansw1\Desktop\效果演示1.gif)]使用到的控件(原生):CoordinatorLayoutCollapsingToolbarLayoutAppBarLayoutToolbarNestedScrollViewFragmentContainerView准备

2022-01-31 23:32:52 3246

原创 Android(12)浅析 偏好设置 Preference(一)

安卓12 Preference源码浅析,自定义Preference

2022-01-30 22:27:03 3543

原创 安卓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 1608 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 2254

原创 AS(Android Studio)编辑区颜色的设置

先来个设置效果图,看看是不是你们想要设置的地方的哈(其他颜色的网上的太多了,我这里贴一丢丢其他视图的颜色,都可以去这个general里试试)1、当前编辑文件Tab中的文字颜色和背景颜色2、当前行的行数字颜色 + 其他行的行数字颜色3、左边边界和下边界颜色 + 左边边界某一块被鼠标悬停选中的颜色4、方法分隔线的颜色5、右边边界指示线的颜色喜欢的可否给个收藏???????????????????????...

2021-11-04 00:45:48 5290 4

原创 Android事件分发

为什么要有事件分发机制?安卓上面的View是树形结构的,View可能会重叠在一起,当我们点击的地方有多个View都可以响应的时候,这个点击事件应该给谁呢?为了解决这一个问题,就有了事件分发机制。如下图,View是一层一层嵌套的,当手指点击 View1 的时候,下面的ViewGroupA、 RootView 等也是能够响应的,为了确定到底应该是哪个View处理这次点击事件,就需要事件分发机制来帮忙。View的结构:我们的View是树形结构的,在上一个问题中实例View的结构大致如下:layout文

2021-10-24 23:26:08 171

原创 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 1780

原创 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 988

原创 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 1863 2

原创 Android设备显示相关帮助类

public class DisplayHelper { /** * 屏幕密度,系统源码注释不推荐使用 */ public static final float DENSITY = Resources.getSystem() .getDisplayMetrics().density; /** * 获取 DisplayMetrics * * @return */ public s

2021-10-14 23:11:32 273

原创 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 104

原创 View Alpha帮助类

public class AlphaViewHelper { private WeakReference<View> mTarget; /** * 设置是否要在 press 时改变透明度 */ private boolean mChangeAlphaWhenPress = true; /** * 设置是否要在 disabled 时改变透明度 */ private boolean mChangeAlphaWhen

2021-10-14 22:51:04 131

原创 创建一个缩略图Bitmap(使用PixelCopy)

public class UI { private static final Canvas sCanvas = new Canvas(); public static Bitmap createBitmapFromView(View view) { return createBitmapFromView(view, 1f); } /** * 从一个view创建Bitmap。 * 注意点:绘制之前要清掉 View 的焦点,因为焦

2021-10-13 22:20:37 1632

Ladies Night 2.jar

IDEA主题

2021-02-02

GIF制作工具(无水印).zip

免费的gif制作工具。免费!没有水印!可以设置录制GIF的FPS,使用方法就是打开软件点击右下角Record按钮,先选择保存在哪,然后就开始录制了,然后点Stop就完成了!!!

2020-11-25

小表情合集下载(.png格式)

小表情图标合集,.png格式的图标。

2020-11-23

空空如也

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

TA关注的人

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