自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记Android字符串资源支持的参数类型

记Android字符串资源支持的参数类型。

2023-12-31 17:58:55 650

原创 Android 使用Compose实现类似View系统的帧动画功能

Android Compose 结合Kotlin flow,通过发送定时消息来实现一个帧动画的功能。

2022-10-16 11:04:29 716 1

原创 android自定义Apk名称和指定生成的路径

安卓自定义编译生成的apk名称,编译类型、变体名称、时间、应用id、版本名称和版本号等信息的获取。自定义生成apk的路径。

2022-09-02 22:16:20 3063

原创 记一次Android解决使用databinding时,Activity/Fragment中无法使用binding引用include标签下的组件问题

解决在安卓中使用databinding时,无法引用include布局里面的组件的问题。

2022-05-17 14:45:25 2087

原创 记一个Android系统广播action在本地的存放路径

Android系统广播action文件的存放地址,方便随时查阅。

2022-04-21 09:23:56 1565

原创 记一个谷歌codelab项目中使用的kotlin类的单例写法

class UserPreferencesRepository private constructor(context: Context) { companion object { @Volatile private var INSTANCE: UserPreferencesRepository? = null fun getInstance(context: Context): UserPreferencesRepository { .

2022-04-17 20:45:25 2428

原创 安卓跳转第三方应用

Intent intent = new Intent();ComponentName componentName=new ComponentName("要跳转的应用包名","要跳转的应用页面路径");intent.setComponent(componentName);startActivity(intent);要跳转的应用包名:如:com.csdn.demo要跳转的应用页面路径:如:com.csdn.demo.MainActivity注意:应用跳转的前提是目标页面支持外部应.

2021-08-06 15:52:59 907

原创 Android监听屏幕状态的广播

一、实现屏幕状态的广播实现代码如下所示:public class ScreenBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Logger.e("广播Action = " + action);

2021-06-23 19:03:15 1443 2

原创 Android adb命令使用记录

一、WiFi连接1)、adb tcpip 端口号如:adb tcpip 88882)、adb connection ip:端口号如:adb con

2021-06-08 15:05:44 3827

原创 记一次Android第三方日历控件CalendarView的使用

一、文章背景用过两个日历控件的库,有用viewpager实现的,也有用canvas实现的。在实际使用过程中,发现使用canvas实现的calendarView切换下一月和下一年这种操作时切换更流畅。我这里主要记录上一年和下一年的使用,其他功能大家可以参考第三方库的使用Github二、日历控件的使用2.1、实现MonthViewpackage com.wyy.usecalendarviewimport android.content.Contextimport android.gr

2021-05-17 20:12:14 2878

原创 Android Room 数据库升级 新建表注意事项

注意事项:数据库建表语句要跟定义的数据类字段属性是否为空要一致。一、定义数据类1.1、数据类属性可以为空时如下所示,类型名称后面带符号“?”:val prevKey: Int?1.2、数据类属性不可以为空时如下所示:val tId: String二、创建数据库表2.1、字段数据可以为空`prevKey` INTEGER2.2、段属性不可以为空`tId` TEXT NOT NULL三、代码块示例3.1、定义完整数据库的数据类如下所示:@Enti

2021-05-12 09:27:35 4256

原创 记一次解决Android studio 编译控制台输出中文乱码的问题

一、问题乱码问题如下图所示:二、解决操作步骤2.1、在Android studio的studio64.exe.vmoptions文件中配置“-Dfile.encoding=UTF-8”2.1.1、详细操作步骤 1)在AS开发工具页面,双击键盘“shift”键 2)搜索studio64.exe.vmoptions,如下图所示 3)选择上图所示的文件 4)输...

2021-04-13 15:05:17 986

原创 Android 使用kotlin data class定义 Room实体类在使用@Ignore注解时的注意事项

一、本文核心要点:使用kotlin的data class定义Room实体数据类时,不要在构造函数中定义忽略属性。二、个人使用定义data class的方式如下:@Entity(tableName = "category_qw")data class Next( val sort: Int, @PrimaryKey val typeId: Int, val typeLevel: Int, val typeName: String, val typ

2021-03-09 11:08:16 2785 2

原创 Android studio修改虚拟机存储路径

前提:在Windows系统下。一、配置系统环境变量1.1、首先进入系统环境变量配置页面1.2、新建系统变量新建系统变量ANDROID_SDK_HOME,下图的变量值是你想存储虚拟机的路径(.android文件夹将要生成的地方,其包含存放虚拟机的avd文件夹)将新建的ANDROID_SDK_HOME引用到Path系统变量二、完成完成后点击确认即可。然后重启电脑再打开Android studio的时候就可以在新的路径上创建虚拟机了。为了方便起见,你也可以直接将原来

2021-02-09 17:07:53 6374 6

原创 解决OKhttp在Android11上运行时异常Expected Android API level 21+ but was 30

一、运行时异常应用在安卓11系统版本上运行时闪退,在其他低版本的系统能正常运行,异常如下:看提示是使用okhttp3的时候报错了。原因是由于我在项目中使用的OKhttp版本低,没有适配Android11的原因。二、解决办法将项目引用的OKhttp3版本号换成最新版本OKhttp Tags由于个人项目中有工具类使用了旧版OKhttp的api,短时间内不能直接升级到最新OKhttp版本。所以我选择了相对较新,能适配Android11又不用修改工具类代码的版本3.14.9。...

2021-02-08 18:00:19 4368 3

原创 记一次快速适配Android 8.0(API 级别 26)及更高版本系统的应用图标

一、效果预览图标效果1。应用图标适配前:图标效果2.应用图标适配后:二、开始创建Asset Image2.1、【在 Project 窗口中,选择 Android 视图】2.2、右键点击 res 文件夹,然后依次选择 New > Image Asset2.2.1、【给资源起一个名字】可在打开的面板的Name栏设置2.3、设置Foreground Layer(系统默认面板Foreground Layer)2.3.1、选择图标1)确定AssetTyp.

2021-02-07 16:28:48 499 2

原创 Android webview 应用内放大和缩小网页

1、设置屏幕支持手动放大和缩小(右下角显示放大缩小控件) mWebSettings = mWebView.getSettings(); mWebSettings.setSupportZoom(true); mWebSettings.setBuiltInZoomControls(true);注意:该设置只会在支持放大缩小的网页生效。2、设置在应用内打开web页面 mWebView.setWebViewClient(new WebV

2021-01-26 17:24:45 3289

原创 java volatile 标签的使用心得

一、对volatile的理解使用volatile定义的变量,告诉jvm我这个变量是经常改变的,不要把它放到高速缓存中,每次都要到内存中重新取值。volatile标签能解决一些痛点问题,如果不用考虑性能损耗的话。二、volatile的使用场景使用volatile定义一个Boolean变量,控制两个(或者多个)线程之间的顺序执行。...

2021-01-15 09:12:41 94

原创 GitHub搜索技巧

搜索公式[in:name|readme|description] 关键词 [language:java|c|python|...] [stars:>1000] [forks:>1000] [pushed:2020.12.26]公式解释:in:限定搜索范围1)name:根据项目名称搜索2)readme:根据项目的readme文件包含的内容搜索3)description:根据项目描述的内容搜索关键词:想要查找的内容关键字language:限定项目用的...

2020-12-26 15:14:25 163 1

原创 混合开发安卓篇,cordova 使用 inAppBrowser 插件打开网页和根据需求修改该插件的视图

一、开发工具:1、android studio作用:1)、运行android和web等平台应用2)、修改inAppBrowser插件,自定义导航栏视图2、visual studio code作用:编辑www文件夹下的前端代码html和js文件等,编写跨平台前端页面功能。二、使用inAppBrowser插件:在visual studio code开发工具中打开项目,找到www/js/index.js,编辑以下代码document.addEventLi...

2020-06-25 17:50:31 2655

原创 详细介绍将iconfont图标以代码的方式引入微信小程序项目中

一、打开iconfont网址二、选择一个图片添加入库我们可以在这里选择多个icon图片添加入库,然后生成同一个项目的icon图标。三、将选择的icon添加入项目3.1、点击右上角的图标3.2、添加至项目此处按提示完成添加至项目。四、编辑图标(可省略此步骤)自定义图标名称规范4.1、编辑图标名称五、编辑项目(可选)自定义项目图标名称...

2020-05-03 13:09:52 1000

原创 微信公众号/小程序注册&认证

本篇文章主要从注册微信小程序的角度讲如何注册小程序账号。作为一名小程序开发者,可能您不用操心注册账号和微信认证的事情,这种事情一般可以交由客户去注册。但当您的客户需要您自己去注册账号时,您可能需要客户提前去申请认证需要的材料,这个时候您可能就需要对注册账号和微信认证的流程和所需要的材料有一些了解。注册公众号和小程序账号的选择优先选择注册公众号。一个公众号可以注册多个小程序账号...

2020-02-17 13:05:08 669

原创 根据自己的词汇量阅读英语原著

一、正文词汇量3500+1、The True Story of the Three Little Pig(三只小猪的真实故事)2、A Bear Called Paddington(一只叫帕丁顿的熊)3、Charlotte's Web(夏洛的网)词汇量4200-55001、Harry Potter and the Philosopher's Stone(哈利波特与魔法石)...

2020-02-16 19:04:19 3743

原创 公众号和小程序命名规则

公众号和小程序命名不允许使用特殊符号,除了空格符号和小程序名称最后可以加“+”的符号,如果要使用其它特殊符号需要上传含有特殊符号的商标才可以使用。命名小技巧:如果名称过长,可以使用汉字“丨”(shu)分隔名称。...

2019-12-17 09:03:34 2322

原创 Java设计模式6大原则

更多学习链接:Java设计模式六大原则一、单一职责原则一个类只做一件事情。针对的是类和类在程序中的实现和细节。二、里氏替换原则子类可以扩展父类的功能,但不能改变父类原有的功能。这包括以下四层含义:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 子类中可以增加自己特有的方法。 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。...

2019-07-20 18:03:20 346

原创 Android字符串资源

目录1、string字符串2、String array字符串数组3、Quantity strings (plurals)复数字符串4、字符串格式和风格4.1、格式:4.2、使用HTML标记设置样式4.3、其它关于string resource的使用1、string字符串提供单个字符串的xml资源文件位置:res/values/filename.xm...

2019-07-04 09:31:39 1364

原创 SharedPreferences安卓共享偏好设置,安卓数据本地存储

目录一、获取SharedPreferences实例1.1、指定名称的SharedPreferences1.2、获取默认的SharedPreferences二、编辑和删除数据2.1、获取编辑器2.2、赋值2.3、标记删除所有数据2.3、提交三、查看数据四、静态资源引用4.1、字符串静态资源引用4.2、布尔值静态资源引用五、监听SharedPr...

2019-06-29 17:38:38 792 2

原创 Android使用MediaStore获取手机上的文件

一、MediaStore简介MediaStore是android系统提供的一个多媒体数据库,专门用于存放多媒体信息的,通过ContentResolver即可对数据库进行操作。MediaStore.Files: 共享的文件,包括多媒体和非多媒体信息MediaStore.Audio: 存放音频信息MediaStore.Image: 存放图片信息MediaStore.Vedio...

2019-06-19 21:49:33 30539 17

原创 Gson解析有时候会出现异常的一个错误根源

可能的错误原因:当gson有时候会出现解析类型异常的时候,需要考虑查看自己的代码是否同时调用的多个异步请求的方法,有可能就是因为这个原因导致接口response返回的是另外一个接口返回的数据,从而导致gson解析类型异常!比如下面的一个异常:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expe...

2019-06-19 15:06:04 1600

原创 谷歌插件工具postman调用http/webservice接口

为什么选择postman?postman同时支持http/webservice接口请求。安装postman谷歌应用商店查找并安装postman,如下图所示:postman请求http接口post请求,添加请求头:也可以以变量的形式添加请求头,以动态生成请求头参数,如下所示:在pre-request script中对变量赋值:var goodman = "...

2019-06-15 11:20:17 1972

原创 两种解决android5.0以后Relativelyout中Button不能被覆盖的方法

1、在Button属性中添加下面的属性android:stateListAnimator="@null"2、在不想被Button覆盖的控件中添加下面的属性android:elevation="10px"注:以上两种方法要在android版本21以后才有效...

2019-05-21 18:48:37 476

转载 C语言中表示输出类型的格式字符

1、%d-以十进制形式输出带符号整数;2、%o-以八进制形式输出无符号整数(不输出前缀O);3、%x-以十六进制形式输出无符号整数(不输出前缀OX);4、%u-以十进制形式输出无符号整数;5、%f-以小数形式输出单、双精度实数;6、%e-以指数形式输出单、双精度实数;7、%g-以%f%e中较短的输出宽度输出单、双精度实数;8、%c-输出单个字符;9、%s-输出...

2019-05-18 08:04:12 13927

原创 英语use to的使用

1、used to do sth.表示过去常常做某事(现在不做了)2、be used to doing sth./be used to sth.是指习惯于做某事(这里的to是介词)3、be used to do sth.这是一个被动语态,表示被用来做某事。对应的主动语态是:use sth. to do sth.参考链接...

2019-04-06 15:05:58 1370

原创 微信小程序支持ES6数组拓展

目录 1、数组实例的 copyWithin(target,start,end)2、数组实例的 find() 和 findIndex()3、数组实例的 fill()4、数组实例的 entries()和keys() 5、数组实例的 includes()6、Array.from()7、Array.of()1、数组实例的 copyWithin(target,start,...

2019-02-16 15:30:03 3084 4

原创 微信小程序支持ES6字符串拓展

1、includes(), startsWith(), endsWith()includes(n)检查字符串中是否存在指定的字符串,返回布尔值,n代表检索的起始位置,n可以不传startsWith(n)判断字符串是否已某个字符串开头,返回布尔值,n代表检索的起始位置,n可以不传endsWith(n)判断字符串是否以某个字符串结尾,返回布尔值,n代表检索的起始位置,n可以不传,这里要注意...

2019-02-16 10:36:29 1507 2

原创 js 退出foreach循环

使用抛出异常的方法退出foreach循环 let projectOk try { that.data.projects.forEach(i => { console.log(i) if (app.trim(i.name) && app.trim(i.cost)) { p...

2019-01-02 14:52:08 2937

原创 如何在微信小程序中使用promise执行异步的操作

在app.js文件中定义返回promise的方法,resolve是执行成功的方法,reject是执行失败的方法,在这个方法中执行一些繁琐,不需要在布局中渲染的业务逻辑代码,如下所示: /** * 登录 * data:请求参数 */ login: function(data) { wx.showNavigationBarLoading() return ...

2018-11-01 17:47:16 1552

原创 JS字符串 替换所有匹配的字符串

var aa = 'ab,cd,ef,cwa' var bb = aa.replace(/\,c/g, '--') console.log('bb:' + bb)这里是替换所有的“,c”,如果只是想替换掉第一个匹配项,代码如下: var aa = 'ab,cd,ef,cwa' var bb = aa.replace(',c', '--') ...

2018-10-25 15:19:32 10159

原创 记CoordinatorLayout的一些使用技巧

解决CoordinatorLayout与recyclerview下拉刷新冲突的问题 backdrop = (ImageView)findViewById(R.id.backdrop); appbar = (AppBarLayout) findViewById(R.id.appbar); appbar.addOnOffsetChangedListe...

2018-09-11 18:26:43 270

原创 android 查看APP启动耗时

D:\workSpace\programByAndroid\Program\Demo>adb shell am start -S -W com.yann.demo/com.yann.demo.ui.splash.SplashActivityStopping: com.yann.demoStarting: Intent { act=android.intent.action.MAIN c...

2018-09-06 18:17:20 1035

空空如也

空空如也

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

TA关注的人

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