自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 100行 python实现Android与windows局域网文件夹同步

最近在使用Obsidian搭建个人云笔记 尽管我使用腾讯云COS图床+gitee实现了云备份,但是在Android上使的Obsidian备份有点麻烦。所以,我写一个局域网文件夹同步工具,来解决这个问题

2023-09-24 21:19:31 464

原创 java解压tar.gz文件

java解压tar.gz文件

2023-09-13 12:11:09 535

原创 Jetpack Compose 自定义 好看的TabRow Indicator

Jetpack Compose提供了强大的 Material Design组件,但是默认的TabRow样式可能无法满足所有场景,所以我们有时需要自定义 TabRow 的样式

2023-09-01 22:03:40 807

原创 Jetpack Compose实现 验证码输入框

Jetpack Compose 作为 Android 的新一代 UI 开发框架,提供了非常强大的工具来构建用户界面。今天,我们就利用 Compose 来实现一个炫酷的验证码输入框

2023-06-28 15:05:59 364

原创 Jetpack Compose实现的一个优雅的 Toast 组件——简单易用~

优雅-简洁-动画 才是我的风格 使用Compose组件来实现一个 优雅-简洁-动画 的 Toast

2023-06-25 15:31:51 1327

原创 如何使用Python生成跑马灯视频

在这篇博客中,我们学习了如何使用Python语言生成一个简单的跑马灯视频。我们使用了OpenCV和Pillow两个库来实现这个功能。

2023-06-10 14:01:59 442 1

原创 Jetpack Compose 实现了一个丝滑流畅的页面展开和关闭的效果动画

Jetpack Compose 将动画实现的门槛降低了,不过Compose目前还不支持共享元素过渡。)的动画效果的实现。

2023-05-24 11:06:20 895

原创 我用Jetpack Compose +Room开发的本地笔记本,代码开源

项目中完全kotlin编写,采用学习的协程和MVI架构;随意切换主题颜色,适配深色模式等。

2023-05-23 22:46:35 319

原创 java获取随机时间戳

【代码】java获取随机时间戳。

2023-05-06 09:47:01 347

原创 docker-compose安装nginx配置hppts 报错

docker-compose安装nginx配置hppts 报错

2023-01-17 13:34:42 867

原创 Jetpack Compose 重写TopAppBar 实现标题多行折叠

想用compose实现类似掘金的文章详细页面的标题栏 便使用了MediumTopAppBar一开始用着没什么问题,但是标题字数多了,MediumTopAppBar就不支持了

2022-11-16 14:46:44 889

原创 MotionLayout自定义一个开关按钮

是一个非常新的类,它来自库中,主要目的是为了帮助Android开发人员在应用中降低使用手势和组件动画的难度。

2022-11-06 18:32:49 647

原创 【安卓笔记】view触摸缩放

view触摸缩小,抬起恢复。

2022-08-24 13:33:16 927

原创 ViewDataBinding找不到自定义view的类

ViewDataBinding找不到自定义view的类。原因是main文件夹下的java文本我改成了kotlin。文件名kotlin改回java。

2022-07-24 17:40:36 765

原创 Jetpack Compose DropdownMenu跟随手指点击位置显示

DropdownMenu显示时默认会避开点击的view通常默认显示在左下方本篇文章教你实现跟随手指按下位置显示

2022-06-21 15:35:57 953 1

原创 compose设置状态栏字体颜色

boolean :true 白色字体boolean :flase 黑色字体ViewCompat.getWindowInsetsController(LocalView.current)?.isAppearanceLightStatusBars = boolean

2022-01-21 15:51:07 1356

原创 Jetpack Compose 实现渐显爱心

首先实现红色爱心图标Box() { Icon( Icons.Filled.Favorite, contentDescription = null, modifier = Modifier .align(Alignment.Center) .graphicsLayer( scaleX = 3.0f, scaleY = 3.0f,

2022-01-20 14:40:47 587

原创 Jetpack Compose 教你打造一个会动的按钮

先讲知识点ColumnScope:官方解释根据元素相对于列中其他加权同级元素的权重,调整元素高度的大小。父元素将在测量未加权的子元素后分割剩余的垂直空间,并根据该权重进行分配。当fill为true时,元素将被强制占据分配给它的整个高度。否则,允许元素更小-这将导致列更小,因为未使用的分配高度不会重新分配给其他同级。意思就是 它包含一个可组合控件,会自动调整元素高度的大小。能够对齐文本。FloatingActionButton( onClick = { expanded = !expand

2022-01-19 17:10:47 689

原创 Jetpack Compose自定义绘测 画太阳

要调用Canvas()的绘测方法`drawCircle方法:绘制圆形fun drawCircle( color: Color, radius: Float 圆的半径, center: Offset = 要绘制圆的中心坐标, /*@FloatRange(from = 0.0, to = 1.0)*/ alpha: Float = 1.0f, style: DrawStyle = Fill, colorFilter: ColorFilter? = 当

2022-01-18 15:44:00 363

原创 Jetpack Compose自定义view 画月亮

首先利用drawArc函数画扇形月亮由有个圆个一个小圆组成设置大圆心角为120°360-120 = 240 startAngle = 40F, sweepAngle = 240f,偏移40°增强画面感sweepAngle = 240f,获取画布宽高 val canvasWidth = size.width // 画布的宽 val canvasHeight = size.height // 画布的高这样画布的宽除2就是大圆的半径了接着求出小圆的直径,通过直径

2022-01-17 17:06:05 676

原创 利用DataBinding优雅的实现,文本选中切换字体背景的颜色效果

在build.gradle里面开启dataBinding buildFeatures { dataBinding true }定义颜色值colors.xml文件里面 <!-- 文本主色调 --> <color name="app_textTheme">@color/white</color> <!-- 文本选中颜色 --> <color name="app_textNormal"&g

2022-01-04 22:10:37 2668 2

原创 Android自动设置状态栏字体颜色

Android6.0以上系统可以把状态栏文字和图标换成深色,但是MIUI、Flyme例外所以我们封装一个根据状态栏颜色来自动设置状态栏字体颜色

2021-12-29 16:57:58 3222

原创 Caused by: kotlinx.serialization.SerializationException: Serializer for class ‘PostType‘ is not foun

log java.lang.IllegalArgumentException: Unable to create converter for com.jiulang.wordsfairy.net.NetResult<java.util.ArrayList<com.jiulang.wordsfairy.entity.PostType>> for method PostService.getHomepageClassifyList at retrofit

2021-12-27 02:04:50 2471

原创 koin 运行报错

No virtual method elapsedNow-UwyO8pc()D in class Lkotlin/time/TimeMark; or its super classes (declaration of ‘kotlin.time.TimeMark’ appears in /data/app/~~8ToQ39W1Gmvz79om2S69_Q==/xxx.xx.xx-dvGHvg3f2zzmurhXBKmXeA==/base.apk!classes22.dex)解决方法把 androidLo

2021-12-26 17:03:35 2061 1

原创 ActivityResultContracts优雅封装,打开文件管理器

XResultLauncheropen class XResultLauncher<I, O>(caller: ActivityResultCaller, contract: ActivityResultContract<I, O>) { private var launcher: ActivityResultLauncher<I>? = null private var callback: ActivityResultCallback<O&gt

2021-10-06 13:36:35 799

原创 AppBarLayout自定义阴影

setTargetElevation()方法已经弃用,推荐使用StateListAnimator,不过要注意Api>=21才能使用res文件夹下新建一个animator资源文件夹,然后在这里用xml文件定义我们需要的StateListAnimator,在里面创建一个appbar_elevation.xml文件appbar_elevation.xml<?xml version="1.0" encoding="utf-8"?><selector xmlns:android=".

2021-10-02 22:23:00 335

原创 解决折叠状态栏+viewPager2嵌套带有下拉刷新的RecyclerView滑动冲突

CoordinatorLayout+AppBarLayout+viewPager2+fragment+下拉刷新的RecyclerView下滑上滑当手指下滑的时候,因为AppBarLayout还没有折叠,滑动事件会被PtrFrameLayout消费,但上滑是如果AppBarLayout还没有折叠,滑动事件也会被PtrFrameLayout消费但和AppBarLayout.Behavior的滑动产生冲突,会发生滑动抖动,网上说重写AppBarLayout.Behavior可以解决,或者重写PtrFra

2021-09-26 20:26:30 1330

原创 【安卓笔记】解决ViewPager2嵌套RecyclerView,上下滑动冲突

当ViewPager2嵌套RecyclerView上下滑动的事件会被RecyclerView分发下去到ViewPager2,所以会造成卡顿。所以重写RecyclerView的dispatchTouchEvent函数,拦截上下滑动事件就可以了Java代码 // 用于标记滑动的坐标 private int downX= 0; private int downY= 0; @Override public boolean dispatchTouchEvent(MotionEve

2021-09-14 11:27:34 3641 3

原创 微信小程序利用Bmob后端云实现:上拉刷新、下拉加载数据

微信小程序下拉加载实现在微信小程序下拉加载的基础上配合Bmob后端云注释在代码里面wxml <scroll-view scroll-y refresher-enabled refresher-triggered="{{isTriggered}}" bindrefresherrefresh = "handleRefresher" bindscrolltolower="handleToLower" style="height: {{windowHeight}

2021-08-30 14:16:46 483

原创 微信小程序下拉加载实现

Tip:一定要给scroll-view设置一个固定高度,不然scroll-view滑动的时候会不停的调用bindscrolltolower函数。wxml <scroll-view scroll-y bindscrolltolower="handleToLower" style="height: {{windowHeight}}px;"> <block wx:for="{{99}}" wx:key="index"> <view cl

2021-08-30 13:29:57 389

原创 【安卓笔记】android申请储存权限,读写文件

首先在AndroidManifest.xml中注册读取USB存储设备中的内容 <!-- 读取您的USB存储设备中的内容 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <!-- 修改或删除您的USB存储设备中的内容 --> <uses-permission android:name="android.permission.W

2021-08-28 15:18:34 4360

原创 【安卓笔记】打开系统文件管理器,选择文件

java打开系统文件过管理器class ResultContract extends ActivityResultContract<Boolean, Intent> { @NonNull @Override public Intent createIntent(@NonNull Context context, Boolean input) { Intent intent = new Intent();

2021-08-04 11:57:27 647

原创 【安卓笔记】上传文件到服务器

java private String uploadFile(String uploadUrl, String filename) { String end = "\r\n"; String twoHyphens = "--"; String boundary = "******"; try { URL url = new URL(uploadUrl); HttpURLConnection

2021-08-04 11:40:01 104

原创 android adb 远程调试

打开wifi详细查看ip地址ip:192.168.0.102打开USB调试模式接着在android studio的Terminal里输入:adb connect ipadb connect 192.168.0.102如果出现:由于目标计算机积极拒绝,无法连接。 (10061)打开开发者选项进入无限调试不用5555端口了直接adb connect 192.168.0.102:38405连接成功~...

2021-07-24 14:12:54 406 1

原创 MaterialContainerTransform容器转换的使用

这个类的作用是让两个页面之间转跳附带动画Activity之间转跳和Fragment之间转跳不太一样Fragment转跳Activity和Activity之间转跳是一样的这里主要讲Fragment转跳Activity的方法和细节首先在Fragment中添加容器变换的开始控件实现点击事件 card_.setOnClickListener(this::toActivity);转跳方法 private void toActivity(View sharedElement) {

2021-07-20 16:09:12 1034

原创 微信小程序导入Bmob后端云的步骤

首先去github下载sdk接着在distw文件夹下有各版本的压缩包重命名后移到utils下接着在app.js引入var Bmob = require('utils/bmob.js')//SDK 2.0版本启用新的初始化keyBmob.initialize("你的Secret Key", "你的API 安全码");//SDK版本 2.0.0 以下保留之前的初始化方法Bmob.initialize("你的Application ID", "你的REST API Key");API 安

2021-06-19 12:38:25 1043 1

原创 php上传文件

upload.html`<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>上传文件</title></head><body><form method="post" action="upload.php" enctype="multipart/form-data"> <inpu

2021-06-15 11:19:21 74 1

原创 EditText监听输入文字的状态

Java class MyTextWatcher implements TextWatcher { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int

2021-05-16 21:26:05 171

原创 Tablayout.setSelectedTabIndicator不显示

Tablayou的指示器setSelectedTabIndicator不显示了网上说是变量改了解决方法在xml里添加此代码 app:tabIndicator="@drawable/tabs_rounded_line_indicator"tabs_rounded_line_indicator.xml<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.

2021-02-26 21:09:33 1943

原创 Java一维集合重组成二维

正确写法:ArrayList<ArrayList<Integer>> numbers = new ArrayList<>(); ArrayList<Integer> number = new ArrayList<>(); // 初始化数据 int index = 0; for (int i = 0; i < 9; i ++) { if (i % 3 !

2021-02-22 15:22:16 231

空空如也

空空如也

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

TA关注的人

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