- 博客(52)
- 收藏
- 关注
原创 100行 python实现Android与windows局域网文件夹同步
最近在使用Obsidian搭建个人云笔记 尽管我使用腾讯云COS图床+gitee实现了云备份,但是在Android上使的Obsidian备份有点麻烦。所以,我写一个局域网文件夹同步工具,来解决这个问题
2023-09-24 21:19:31 491
原创 Jetpack Compose 自定义 好看的TabRow Indicator
Jetpack Compose提供了强大的 Material Design组件,但是默认的TabRow样式可能无法满足所有场景,所以我们有时需要自定义 TabRow 的样式
2023-09-01 22:03:40 886
原创 Jetpack Compose实现 验证码输入框
Jetpack Compose 作为 Android 的新一代 UI 开发框架,提供了非常强大的工具来构建用户界面。今天,我们就利用 Compose 来实现一个炫酷的验证码输入框
2023-06-28 15:05:59 396
原创 Jetpack Compose实现的一个优雅的 Toast 组件——简单易用~
优雅-简洁-动画 才是我的风格 使用Compose组件来实现一个 优雅-简洁-动画 的 Toast
2023-06-25 15:31:51 1477
原创 如何使用Python生成跑马灯视频
在这篇博客中,我们学习了如何使用Python语言生成一个简单的跑马灯视频。我们使用了OpenCV和Pillow两个库来实现这个功能。
2023-06-10 14:01:59 471 1
原创 Jetpack Compose 实现了一个丝滑流畅的页面展开和关闭的效果动画
Jetpack Compose 将动画实现的门槛降低了,不过Compose目前还不支持共享元素过渡。)的动画效果的实现。
2023-05-24 11:06:20 940
原创 我用Jetpack Compose +Room开发的本地笔记本,代码开源
项目中完全kotlin编写,采用学习的协程和MVI架构;随意切换主题颜色,适配深色模式等。
2023-05-23 22:46:35 351
原创 Jetpack Compose 重写TopAppBar 实现标题多行折叠
想用compose实现类似掘金的文章详细页面的标题栏 便使用了MediumTopAppBar一开始用着没什么问题,但是标题字数多了,MediumTopAppBar就不支持了
2022-11-16 14:46:44 950
原创 MotionLayout自定义一个开关按钮
是一个非常新的类,它来自库中,主要目的是为了帮助Android开发人员在应用中降低使用手势和组件动画的难度。
2022-11-06 18:32:49 665
原创 ViewDataBinding找不到自定义view的类
ViewDataBinding找不到自定义view的类。原因是main文件夹下的java文本我改成了kotlin。文件名kotlin改回java。
2022-07-24 17:40:36 788
原创 Jetpack Compose DropdownMenu跟随手指点击位置显示
DropdownMenu显示时默认会避开点击的view通常默认显示在左下方本篇文章教你实现跟随手指按下位置显示
2022-06-21 15:35:57 1001 1
原创 compose设置状态栏字体颜色
boolean :true 白色字体boolean :flase 黑色字体ViewCompat.getWindowInsetsController(LocalView.current)?.isAppearanceLightStatusBars = boolean
2022-01-21 15:51:07 1399
原创 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 606
原创 Jetpack Compose 教你打造一个会动的按钮
先讲知识点ColumnScope:官方解释根据元素相对于列中其他加权同级元素的权重,调整元素高度的大小。父元素将在测量未加权的子元素后分割剩余的垂直空间,并根据该权重进行分配。当fill为true时,元素将被强制占据分配给它的整个高度。否则,允许元素更小-这将导致列更小,因为未使用的分配高度不会重新分配给其他同级。意思就是 它包含一个可组合控件,会自动调整元素高度的大小。能够对齐文本。FloatingActionButton( onClick = { expanded = !expand
2022-01-19 17:10:47 711
原创 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 375
原创 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 696
原创 利用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 2707 2
原创 Android自动设置状态栏字体颜色
Android6.0以上系统可以把状态栏文字和图标换成深色,但是MIUI、Flyme例外所以我们封装一个根据状态栏颜色来自动设置状态栏字体颜色
2021-12-29 16:57:58 3282
原创 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 2516
原创 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 2102 1
原创 ActivityResultContracts优雅封装,打开文件管理器
XResultLauncheropen class XResultLauncher<I, O>(caller: ActivityResultCaller, contract: ActivityResultContract<I, O>) { private var launcher: ActivityResultLauncher<I>? = null private var callback: ActivityResultCallback<O>
2021-10-06 13:36:35 823
原创 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 350
原创 解决折叠状态栏+viewPager2嵌套带有下拉刷新的RecyclerView滑动冲突
CoordinatorLayout+AppBarLayout+viewPager2+fragment+下拉刷新的RecyclerView下滑上滑当手指下滑的时候,因为AppBarLayout还没有折叠,滑动事件会被PtrFrameLayout消费,但上滑是如果AppBarLayout还没有折叠,滑动事件也会被PtrFrameLayout消费但和AppBarLayout.Behavior的滑动产生冲突,会发生滑动抖动,网上说重写AppBarLayout.Behavior可以解决,或者重写PtrFra
2021-09-26 20:26:30 1362
原创 【安卓笔记】解决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 3712 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 500
原创 微信小程序下拉加载实现
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 400
原创 【安卓笔记】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 4389
原创 【安卓笔记】打开系统文件管理器,选择文件
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 668
原创 【安卓笔记】上传文件到服务器
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 117
原创 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 478 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 1065
原创 微信小程序导入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 1080 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 91 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 184
原创 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 2005
原创 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 244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人