自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android12 Launcher3 最近任务客制化

实现效果包括 : 修改图标位置+添加应用名称、多任务背景改成壁纸、Task预览图的圆角半径、清除全部按钮移动到底部显示、最近任务为空时的图片、字体颜色、Task预览图缩放效果等

2023-02-13 12:03:37 403

原创 Linux:ubuntu系统配置环境变量(jdk、adb)

通过自带记事本修改系统文件的方式,不会用vi/vim命令的可以看看

2022-04-07 16:58:47 1993

原创 极光JMessage:IM即时通信集成群聊简单实现(无需自己搞后台和数据库)

一、注册极光账号,创建应用网址:首页 - 极光二、集成sdk:1、项目的build.gradle添加mavenCentral():buildscript { repositories { ... mavenCentral() } ...}allprojects { repositories { ... mavenCentral() }}2、app的build.g.

2021-12-21 13:07:06 2397

原创 【javaFx】使用小记录

textArea自动换行、textArea自动滚动到底部、固定窗口大小、子线程里面更新UI、拖拽文件或文字到窗口上面、文件/文件夹选择器、悬停文本提示、监听文本变化

2021-12-17 09:59:02 193

原创 (Kotlin)Android Jetpack开发 —— 数据库框架Room简单使用

前期工作:首先添加依赖://room数据库def roomVersion = "2.3.0"implementation("androidx.room:room-runtime:$roomVersion")annotationProcessor("androidx.room:room-compiler:$roomVersion")// To use Kotlin annotation processing tool (kapt) 添加这个,编译的时候系统会帮我们自动生成代码kapt(

2021-11-10 16:01:21 2759

原创 Android原生Switch禁止滑动实现

前言搜遍全网,没有找到对原生控件实现禁止滑动的,全都是自定义view实现。然后自己找到了一个解决方式,可以不重写Switch控件,只用style就能实现。这边先说一下有滑动效果会产生的问题:在注册了监听事件setOnCheckedChangeListener之后,通过代码去setCheck它也会进去change事件里面,但实际上我们不希望这个事件的发生,我们只想纯UI上的变化。网上有两种解决思路:第一种,也是比较笨的方法,setCheck前把change监听设置为null,se.

2021-11-04 15:53:01 3282 4

原创 自定义view之自定义滑动seekbar

搜索自定义seekbar全都是基于原生seekbar都是拖动滑块的,并且点击seekbar某个位置就会跳变到那里,我想要的是跟miui10的那个亮度条那样滑动来调节的,既然没有那就自己动手吧。首先自己要清楚要画出来的是什么样的,这里先看下效果图:实现思路:主要的就是要draw两个原件矩形,一个背景,一个进度的方块,然后通过onTouchEvent来触发滑动改变进度。首先先声明两支笔,一只画背景,一只话进度,然后给笔设置颜色:private Paint bgPaint;pri..

2021-08-24 17:02:22 618

原创 WebView获取加载的html文本内容

效果如图:没有直接获取文本的方法,用的是通过js注入,调用js函数,使用js调用Android的方法并传入界面的<html></html>里面的内容。布局内容:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match.

2021-08-20 14:05:48 780

原创 Android:支付宝sdk支付回调错误码4000

看下你的声明文件是不是声明sdk是30以上,是的话需要在AndroidManifest.xml添加如下代码:<queries> <package android:name="com.eg.android.AlipayGphone" /> <package android:name="hk.alipay.wallet" /> </queries>...

2021-07-06 20:08:03 904 3

原创 Android:用MotionLayout布局简单实现过度动画

先看效果:(懒得视频转gif,就截三张图吧)动画前:动画中:动画结束:这里4个view分别做了动画:文字由黑色变红色 拖动圆形块由做到右 宽度改变块的宽度变宽 左下角弹出四个view先了解一下背景:MotionLayout继承自ConstraintLayout,所以布局里面的内容不需要改变,直接替换掉ConstraintLayout也是没有问题的。实现步骤:替换完之后布局会报问题,根据提示,让它自己生成我们的场景文件,并且会有一个属性:

2021-07-01 16:22:30 384

原创 Android 11裁剪图片提示保存时发生错误,保存失败

前提须知:总所周知,Android11之后存储发生变更,APP只能访问自己的私有目录或者公共目录,不能访问别的app的私有目录。错误原因:发生“保存时发生错误,保存失败”这个错误的原因是你调用系统自带的裁剪工具不属于你的app,访问你的app私有目录是不允许的。解决:裁切intent.putExtra(MediaStore.EXTRA_OUTPUT, uri)这里的uri使用公用目录:File cropPhoto;if(Build.VERSION.SDK_INT >= Bu

2021-03-28 18:02:38 5928 6

原创 初学Kotlin之抽象的匿名内部类实现

Java的时候我们一般设置匿名内部类是直接new那个抽象类,然后回自动导入这个类需要实现的方法,例如:他会自动实现里面的三个方法:但是到了Kotlin的时候,刚接触学习Kotlin的小伙伴第一时间会想到java中需要new的在kotlin是不用new的,直接写类名,结果:不会有任何提示。是的,只有一个方法的可以用landau表达式,多个方法的需要每个都实现,这些方法肯定是不可能一个个敲出来的了。很简单,我们只要在前面加上object:...

2021-03-01 18:15:36 370

原创 Android:本地音乐文件写入专辑图

网上搜索这个Android写入专辑图的资料少之又少,都是读取的,这里我找到了一个方法,然后自己做了个写入专辑图的小工具,有需要的童鞋可以参考一下。先上效果图:依赖第三方库:jaudiotagger(java)、Okhttpdemo语言:Kotlin不会kotlin的小伙伴别慌,我也是边学kotlin先写的这个demo,看过kotlin基础语法的小伙伴应该还是比较好理解的。核心写入代码://path:本地音乐文件路径;picFile:本地图片文件(网络图片的话我这边的...

2021-02-08 16:12:33 502 2

原创 Kotlin内联扩展函数let,with,run,apply,also的简单理解

1、let:var result = object.let{ it.todo() 1000}let的函数体内用it代表该对象 可以判空:object?.let{} 返回函数体最后一行的值:result = 10002、with:var result = with(object){ todo() 1000}whit的函数体内用this代表该对象(可省略this) 本体是with(object,{}) 返回函数体最后一行的值:result .

2021-01-11 16:53:27 138 2

原创 Java程序员学Kotlin的一些小记录(1):java和kotlin方法互调小思考

Kotlin的函数的参数可以直接传递方法,Java不能,需要通过定义接口,用接口的方式传递。但是Java和Kotlin又可以互调,那如果我们再kotlin的类中定义一个需要参数传方法的函数,然后java去调用它这个函数,会以怎么样的形式传给它呢?我们在kotlin文件中定义一个函数,这个函数需要传递一个字符串和一个方法,这个方法需要传递两个数字,并且返回一个数字:(为方便调用声明为object,相当于java里面的静态类吧,里面的方法都是可直接访问)object TestKotlin{.

2021-01-07 14:50:36 96

原创 使用BaseQuickAdapter时RecyclerView嵌套RecyclerView点击事件处理最简单的解决方案

正常情况下,父RecyclerView嵌套子RecyclerView的话,点击子RecyclerView只会响应它自己的点击事件,就算你没有在BaseQuickAdapter里面设置它的点击事件,它也会拦截掉,不响应父列表的点击事件。大家的第一反应就是处理事件分发,让子列表不处理交给外部列表处理点击事件,又或者写一个接口传递给你的父adapter,让它再传给子adapter。都是比较麻烦的处理方式。这里提供另一种思路:点击内部列表调用外部点击事件的方法:@Override protecte.

2020-12-18 23:58:31 2091 1

原创 Andoid9、10报java.lang.IllegalStateException: Not one of standard directories: xxxxx解决

我这边是使用DownloadManager的时候遇到这个问题,因为写了try-catch,所以通知栏不会显示下载,直接走catch了,打印错误原因如下:java.lang.IllegalStateException: Not one of standard directories:xxxxx我都机子是Android10。网上百度原因:对于面向Build.VERSION_CODES.Q或更高版本的应用程序,不需要WRITE_EXTERNAL_STORAGE权限,并且dirType必须是已知..

2020-12-14 19:04:11 1503 2

原创 升级Android Studio4.1遇到的坑:插件不兼容、代码不高亮、错误不爆红

手贱点了升级之后,遇到很多问题,整合一下提供参考。如果还没有升级的话,建议先别升,等稳定一点的版本。我已经有点后悔升级了1、插件不兼容:启动as提示插件不兼容:Plugin Error: Plugin"xxxxxx"is incompatible(supported only in Intell IDEA)你会发现在as的设置-plugins里面已经看不到提示不兼容的插件了。解决:我们在电脑中手动查找,找到插件位置:C:\Users\{user}\AppData\Roaming\Go.

2020-11-26 11:07:19 3234 1

原创 Android7.1 Shortcut快捷方式运用

效果:两种方式:静态和动态静态:1、xml目录下新建一个文件,比如命名为static_shortcuts.xml:<?xml version="1.0" encoding="utf-8"?><shortcuts xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"> <.

2020-11-19 16:17:57 330

原创 Android:顶部栏ActionBar/ToolBar右上角添加菜单

三步走:1、res里面新建文件夹menu,然后里面创建菜单文件.xml:2、内容就是各个item:<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://s

2020-11-19 15:58:22 1276

原创 Android底部Dialog弹出与收起

根据需求,如果经常复用的话,建议单独写一个继承Dialog的底部弹窗类,如果只用一遍的话,可以选择直接new Dialog来快速创建一个窗口。先准备好窗口的style和动画的style:<style name="BottomDialog" parent="@style/Base.V7.Theme.AppCompat.Light.Dialog"> <item name="android:windowNoTitle">true</item> &l.

2020-11-19 15:45:06 626

原创 Android Jetpack开发 —— ViewModel、LiveData、DataBinding简单使用

前言:Jetpack网上一搜全都有解释,在这里我就不介绍Jetpack了,直接给ViewModel、LiveData、DataBinding上例子。注:本文基于AndroidX的项目,本人自己理解的意思做的讲解,有不对或疑惑的地方欢迎评论留言一起学习探讨。一、ViewModel:1、功能:屏幕旋转或者字号改变的时候该Activity数据不会丢失。2、做法:写一个类集...

2020-03-24 20:59:50 2124

原创 使用retrofit2时,接口需要登录后请求头里放token解决方案

需求:没有登陆时接口照常使用,登陆后请求数据需要在请求头里带token过去。问题:这个header的声明方式有几种,常见的是在创建单例接口类时就给声明了header,而这个单例在第一次请求数据的时候就创建了,那时候如果没有登陆,那登陆后依然是用的同一个header,就带不过去这个token。另一种就是在声明接口的时候添加@Header()注解,但是这样的话需要每个接口上面都写这个...

2020-01-08 17:43:55 6498 5

原创 Android Studio插件在线、离线安装以及常用插件推荐

安装插件的方法:1、在线安装:设置Setting里面检索plugins:然后就可以搜索插件名称以及安装了。2、离线安装:上图顶部Updates右边那个设置图标:选择下载好的离线插件导入即可(下载好的插件不用解压)。附上插件下载官网:https://plugins.jetbrains.com/插件推荐:1、GsonFormat快速...

2020-01-08 16:53:25 3197

原创 Android:用DialogFragment实现LoadingDialog等待加载框

1、先搞好一个等待框的布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android...

2020-01-07 18:38:18 2777

原创 腾讯bugly集成步骤

集成步骤:1、登录腾讯bugly,创建应用,记下appid,待会要用到2、依赖://腾讯Bugly。其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.2.0implementation 'com.tencent.bugly:crashreport:latest.release' 最新版版本号可前往这里查看:https://bugl...

2019-11-15 18:36:11 1791

原创 RecyclerView高度撑满ScrollView

两步: 把ScrollView换成android.support.v4.widget.NestedScrollView recyclerview.setNestedScrollingEnabled(false); 收工。

2019-11-09 16:27:54 1105

原创 Rxjava+Retrofit2上传文件带参数:参数自带引号问题解决

上传文件没问题。上传图文,也就是上传文字和图片的时候,用以下这个代码:@Multipart@POST("xxxxx/images/")Flowable<UpImgAndTextBean> upLoadImgAndText( @Part("title") String title, ...

2019-11-09 16:21:52 1161

原创 Android跳转到拨号界面,并且把号码带过去

Intent intent = new Intent();intent.setAction(Intent.ACTION_DIAL);intent.setData(Uri.parse("tel:"+需要带过去的电话号码));startActivity(intent);

2019-11-09 16:08:27 1505

原创 java:try-catch后写不写finally的区别

相信有小伙伴跟我一样写finally和不写finally,try完或者catch完之后,一样会往后执行,那么写finally的意义何在呢?我先来给出我理解的答案:finally是防止try里面有return语句而发生catch没及时关闭一些东西。经测试,我们发现:try里有return,并且执行到了,也会先把finally执行完再return。而不写finally则直接...

2019-09-24 12:33:24 2766

原创 java中比较两个数组中的元素是否相同

String [] array1 = {"1","2","3"}; String [] array2 = {"3","2","1"}; Arrays.sort(array1); Arrays.sort(array2); if (Arrays.equals(array1, array2)) { System.out.println("两个数组中的元素值相同"); ...

2019-09-24 12:18:50 3807

原创 java:文本、图片的复制粘贴

1、复制文本(把文本放入剪切板中):public void copyTxt(String s){ //获得系统粘贴板 Clipboard clipboard = getToolkit().getSystemClipboard(); //建立一个粘贴板内容实例 StringSelection textInfoSelected = new StringSe...

2019-09-24 12:14:09 1043

原创 java:通过反射实现泛型的实例化(T t = new T())

public D newD(){ D newD; try { // 通过反射获取model的真实类型 ParameterizedType pt = (ParameterizedType) this.getClass().getGenericSuperclass(); Class<D&gt...

2019-09-24 12:02:25 7622 2

原创 BigDecimal加减乘除运算

BigDecimal b1 = new BigDecimal(); BigDecimal b2 = new BigDecimal();加法:b1.add(b2)减法:b1.subtract(b2)乘法:b1.multiply(b2)除法:b1.divide(b2)除法四舍五入:b1.divide(b2, len,BigDecimal.ROUND_HALF_UP)...

2019-09-24 12:00:06 2310

原创 java:字符串某个位置插入一个字符串

StringBuffer sb = new StringBuffer("原字符串");sb.insert(index,"需要插入的字符串");

2019-09-24 11:54:03 4337 3

翻译 Java中的String,StringBuilder,StringBuffer三者的区别

1、首先说运行速度,或者说是执行速度,在这方面运行速度快慢为:StringBuilder > StringBuffer > StringString最慢的原因:  String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。2、再来说线程...

2019-09-24 11:51:26 57

原创 Android:H5、web调起App并且传递参数

1、在清单文件的Activity声明里添加:<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT" /> <category andr...

2019-09-24 11:38:54 2403 1

原创 Android最简单的倒计时:CountDownTimer

原理:内部封装了handler使用:CountDownTimer mCountDownTimer = new CountDownTimer(3000, 1000) { @Override public void onTick(long millisUntilFinished) { String value = String.valueOf((i...

2019-09-24 11:31:08 717

原创 Android权限申请:自带方法 + 第三方库实现

Android自带权限申请方法:1、权限申请:(第二个参数0是requestCode):String [] permission = {Manifest.permission.ACCESS_FINE_LOCATION};if(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManag...

2019-09-24 11:26:48 3251

原创 Android实现重写父类方法必须调用父类该方法

实现效果:子类中重写init方法,必须使用super.init()调用A类的init方法,否则编译不通过。1、父类A:(你定义的类,供别人继承)class A{ public void init(){ //do something for class A }}2、子类B:(别人的类,继承你的类A)class B extends A{ ...

2019-09-09 14:21:06 3041

android studio常用插件.rar

资源包含GsonFormat.jar、android-butterknife-zelezny.jar、FindViewByMe.jar、drawable_preview-1.1.4.zip等四个android studio插件,可在android studio直接导入即可。导入方式以及插件介绍查看博客:https://blog.csdn.net/qq_35584878/article/details/103893746

2020-01-08

空空如也

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

TA关注的人

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