自定义博客皮肤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)
  • 收藏
  • 关注

原创 透明度百分比 : 8位颜色值前两位

开发中经常使用到的颜色值透明度,对应的百分比表

2022-10-09 09:59:01 261 1

转载 解决Fragment里嵌套ViewPager滑动卡顿的问题

解决了viewpager+fragment并嵌套viewpager时,滑动卡顿,界面展示不正常等问题。

2022-10-08 17:49:27 1142

原创 Android string.xml文字换行、空格等样式(转义字符)

在我们日常工作中,对string.xml中的字符串需要进行加工处理:1、换行、空格、转义等,虽然都是些小东西,但不常用到的东西容易忘记,所以保存起来用到时,直接查看,方便又快速。字符转义字符描述&&和<<小于号>>大于号“"双引号‘'单引号空格 空格换行\n换行缩进\t缩进2、根据接口数据返回替换或插入到字符串中 %1$s表示替换的为String类型

2021-11-18 17:45:36 9106 1

原创 Android studio sync同步后,任务task列表没有生成的处理方法

AS中任务列表生成选项使用的AS版本现象正常的状态解决方案使用的AS版本Android Studio Arctic fox | 2020.3.1 Patch3现象同步完成后,任务列表不见了,表现如下:正常的状态同步完成后,应该展示Tasks列表,展示出下解决方案settings---->Experimental---->去掉gradle栏目当中的勾选状态:“Do not build Gradle task list during Gradle sync(不要在gradle同步

2021-11-09 15:25:32 633

原创 Android Studio Build\Run编译窗口出现中文乱码问题

1、如下图所示,编译的时候,在Run窗口当中报错了,却看到的全是乱码2、处理方法:在studio当中双击shift出现全局搜索弹窗。输入:Edit Custom VM Options在出现的两个结果当中,选择第一个,回车。如果没有搜索出结果:则使用studio当中的菜单,help---->Edit Custom VM Options3、经过第二步,将会打开studio64.exe.vmoptions文件在文件末尾添加**-Dfile.encoding=UTF-8**注意不要有空格

2021-08-24 15:41:15 1936 3

原创 String字符长度判断字母数字算半个

private double getLength(String s) { double valueLength = 0; String chinese = "[\u4e00-\u9fa5]"; for (int i = 0; i < s.length(); i++) { // 获取一个字符 String temp = s.substring(i, i + 1); // 判断是否为中文字符 if (tem

2021-05-21 11:45:08 322

原创 15、自定义安卓插件plugin

一、Settings类此类为gradle中非常重要的类之一,常见的是settings.gradle文件,而在文件当中,主要是使用include方法引入了不同的project。而settings.gradle独立占用了整个初始化生命周期,决定着哪些project需要在本次的编译当中使用。二、SourceSet类此类约定并决定了工程中所有的源码、资源、库的存放位置。优先级约定大于配置。作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。ht

2021-03-20 10:36:35 1052 1

原创 自定义半屏弹窗Dialog或Activity背景半透明

一、先看看效果图实现半屏弹窗,背景半透明,可以使用Dialog或Activity来实现。二、动画效果实现从下往上弹出,从上往下关闭。从下往上弹出:anim_slide_in_bottom.xml<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"&gt

2021-03-19 09:47:50 4900 2

原创 Java读写Excel文件

一、下载和添加需要的库1、gson下载地址https://repo1.maven.org/maven2/com/google/code/gson/gson/2.8.6/2、poi下载地址https://archive.apache.org/dist/poi/release/bin/3、使用到的库都在poi的下载包的不同lib文件夹内4、将.jar包添加到依赖当中,右击需要添加的包–>add Library二、关键代码public static void main(String[] a

2021-03-17 10:38:42 217

原创 14、gradle中的task的使用(二)

作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。https://blog.csdn.net/amir_zt/article/details/114024068

2021-03-03 07:02:28 317

原创 13、gradle中的task的使用(一)

一、查看工程中所有的task及描述在根工程执行gradlew tasks可以看到工程中默认的一些task及用途。二、task定义的两种方法,以及参数定义说明gradle是通过TaskContainer管理当前Project中所有的Task。三、配置中的doFirst和doLast作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。https://blog.csdn.net/amir_zt/article/details/1

2021-03-02 10:28:44 816

原创 12、gradle中的api解析(二)

一、task中的api作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。https://blog.csdn.net/amir_zt/article/details/113887609

2021-03-01 07:26:35 661

原创 11、gradle中的api解析(一)

一、工程结构解析1、单单从目录上来看,我们的工程是一个project下面,有多个module模块。2、如果从每个module的构成来看,每个module下面都包含有build.gradle文件,也就是说其实每个module也是一个project。build.gradle文件是判断project的关键和标志。3、使用命令gradlew project可以查看输出,输出的结果是一个root project(根工程)下面包含多个project,根project就是用于管理子project的。每个子proje

2021-02-28 09:11:03 2408

原创 10、gradle生命周期及监听

一、gradle组成1、groovy的核心语法2、build script block3、gradle的api二、gradle的生命周期gradle的生命周期有3个阶段:1、Initialization初始化阶段:解析整个工程中所有的Project,构建所有的Project对应的project对象。2、Configuration 配置阶段:解析所有的projects对象中的task,构建好所有task的拓扑图。3、Execution 执行阶段:执行具体的task及其依赖task。三、监听方

2021-02-25 08:53:34 395

原创 8、file文件的读取与保存

一、file的读取与保存二、对象的保存与读取作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。https://blog.csdn.net/amir_zt/article/details/113857394

2021-02-24 06:19:51 840

原创 7、json和xml解析与生成

一、json解析从网络获取json,并解析,在此我删除了网络地址,大家去网上找就行了。二、xml解析三、xml生成作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。https://blog.csdn.net/amir_zt/article/details/113851802...

2021-02-20 06:17:16 122

原创 6、Groovy面向对象

一、面向对象实例实现接口默认方法二、groovy中的元编程,方法执行时期三、为类动态添加属性和方法使用场景主要是引用了第三方库过后,如果这库中某些类中的方法不够我使用,我需要添加一些自己的方法,一般有两种办法:1、继承,然后实现类。2、动态添加方法。但是一般如String等final类,是不允许继承的,所以使用动态添加方法可以实现我们的目的。还有在做框架的时候会用到。四、随便写个小例子作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原

2021-02-19 06:34:16 250

原创 5、Groovy数据结构

一、列表:增、删、查、排一、map:增、删、查、排作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。https://blog.csdn.net/amir_zt/article/details/113450181

2021-02-18 10:26:57 103

原创 4、Groovy的基本语法(三)--闭包进阶

1、闭包的三个重要变量this, owner, delegatethis:代表闭包定义处的类owner:代表闭包定义处的类或者对象,优先类,其次才是对象(比如在一个类里定义了一个closer对象,如果在closer里调用owner,那owner到底是类呢还是closer对象呢?优先类,当然是指向所在的类)delegate:代表任意对象,默认与owner一致(没有重定义的情况下),重定义则可以指向任意的其它对象。 总结:如果在类中定义了一个闭包,那么thisownerdelegate都指向

2021-02-14 11:36:25 188

原创 自定义TextView末尾增加高亮文字(ForegroundColorSpan)和点击事件(ClickableSpan)

一、自定义TextView实现增加高亮文字和点击事件先看效果图如下:详细描述是这样的:实现一个文本框,条件1:文本显示三行。条件2:文本超过三行时,在末尾显示省略号,并且在末尾展示“查看全部 >”按钮,高亮显示,并且可以点击跳转界面。条件3:文本三行能全部显示完整,则不展示“查看全部 >”按钮。这个实现跟可扩展TextView的定义不一样,只需要实现末尾添加文字、图片、高亮、可点击即可。当然难点是在:“查看全部 >”按钮,精确的显示在文本的最后面。所以计算需要展示的字符串长度,就

2021-02-08 19:21:32 1720

原创 3、Groovy的基本语法(二)

一、闭包闭包总是有返回值的二、闭包的结合使用小结:每次调用闭包作为参数的时候,勿必要去源码里面看看实现,以决定我们编写闭包的参数与返回值。作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。https://blog.csdn.net/amir_zt/article/details/113450181...

2021-02-07 11:20:59 102

原创 2、Groovy的基本语法(一)

一、groovy中的变量类型groovy中虽然可以使用int\double等基本的变量类型,但实际上都是对象类型Integer\Double。但在使用中,对我们并没有任何影响。二、变量的定义1、强类型定义方式:在定义变量的时候就指定变量的类型。例如int x = 102、弱类型def定义方式:编译器会自动根据值的类型来判断其类型,所以不需要明确指明变量的类型。例如dev x = 113、如果变量只是用于本类和本模块,不给其它用,就可以使用def方式进行弱类型定义,我们可以随时重新定义成其它类型。所

2021-02-03 10:31:08 1117

原创 自定义布局实现TextView控制行数显示并显示全部按钮

一、先看一下要实现的效果图此处的实现与可展示的TextView实现不一样,这里的业务场景是点击“查看全部”后,跳转到其它界面展示全部内容,而不是在当前界面,所以此处的"查看全部"只是用于点击事件的安置功能。当文本长度,在三行内能够完全展示出来,则隐藏“查看全部”。二、实现解析此处的功能点,是在怎么让文本只显示两行多一点,而不直接把三行充满,然后再显示三个点。其实Paint类里面,内置了计算文字显示长度的方法。我们只需要调用这个方法得到文本展示的总长度、然后再与控件长度、以及展示行数固定值,进行计算

2021-02-01 17:25:57 559

原创 1、Groovy的定义与环境配置

一、领域特定语言DSL(domain speciflic language)解决计算机某一特定领域的问题,DSL语言是纵向往深度去发展,系统编程语言是横向往广度的方向去发展的,比如java。h5\uml\matlab\groovy是DSL的分支,求专不求全,解决特定的问题。二、groovy是一种基于JVM的敏捷开发语言,将文件编译成.class文件进行执行,是对java的扩展。groovy可以解释执行,可以使用脚本方式执行。结合了python\ruby\smalltalk许多强大的特性(面向过程编

2021-01-31 22:05:20 552

原创 9、初识Gradle基本用法

一、gradle是什么? 1、gradle是一个灵活高效且支持多语言多平台的构建工具。 2、最初使用groovy作为语言,从5.0开始支持kotlin的dsl,优点是支持多种仓库,易扩展高性能。二、安装gradle 1)直接下载解压,里面每个文件夹可以挨个打开看一下,其中bin文件里存放的就是gradle可执行脚本,linux下的和windows下的。 2)通过包管理工具sdkman:sdk install gradle,homebrew:brew install gradle 3)gradl

2021-01-31 10:34:09 384 1

原创 4、Kotlin基本用法(二)

1、区间的用法区间的遍历和数组的遍历是一样的,只是离散的区间更多的是迭代,连续的区间主要是判断它的包含关系2、Kotlin的集合框架作者:沧水巫云博客:http://blog.csdn.NET/amir_zt/以上原创,转载请注明出处,谢谢。https://blog.csdn.net/amir_zt/article/details/113098369...

2021-01-28 09:53:09 78

原创 5、Kotlin的集合框架

一、与Java对比,有什么不同增加了“不可变”集合框架的接口。没有另起炉灶,复用Java API的所有实现类型。提供了丰富易用的方法,例如forEach/map/flatMap。Scala也是一门JVM语言,Kotlin很多特性都参考了Scala。运算符级别的支持,简化集合框架的访问。二、Kotlin的集合用法有自己的类型,所以是"一等公民",可以赋值、传递,并在合适的条件下调用。以下是各种函数的用法,关键点都写在注释当中了:三、Pair,就是对,键值对的意思,包含两个元素,Triple则包

2021-01-28 09:51:37 265

原创 3、Kotlin基本类型

1、Kotlin vs Java如下图,我简单做了一个表格用以它们两者之间的对比。2、声明变量val b: String = “Hello Kotlin”val:只读变量,与java里修饰词final类似var:可读写变量java和kotlin的对比,见图:3、无符号类型4、Raw StringKotlin里面可以非常方便的生成模板,非常直观。JAVA里面则需要各种换行与转义5、字符串的用法6、数组的用法作者:沧水巫云博客:http://blo

2021-01-25 17:23:55 213

原创 2、kotlin开发工具使用和工程创建方法

一、IntelliJ IDEA工具,内置kotlin插件,无需安装,目前我下载日期是2021-01-19日,最新版本。方式1:直接创建Kotlin工程,工程创建较为快捷,适合DEMO,依赖需要手动管理,扩展性较差。方式2:创建Maven工程,需要安装Maven,需要掌握Maven机制。 方式3:创建Gradle工程,需要下载Gradle,需要掌握Gradle机制,Gradle管理依赖,方便扩展。 1、new project---->Gradle---->java,Kotlin/JVM(

2021-01-22 09:21:08 1080

原创 1、初识kotlin以及环境配置

一、kotlin是一种静态类型的编程语言,可以在java虚拟机上运行,也可以编译为JavaScript源码。二、IntelliJ IDEA开发工具下载地址:https://www.jetbrains.com/products/#type=ide三、kotlin-compiler-1.x.x下载地址:https://github.com/JetBrains/kotlin四、使用Kotlin命令运行一段代码1)创建一个 Kotlin类 —— hello.kt2)代码如下:/** * Create

2021-01-19 17:58:11 818

原创 java.lang.IllegalStateException: Can‘t change tag of fragment异常解决

1、先来看看出错的日志java.lang.IllegalStateException: Can’t change tag of fragment CustomFuctionFragment{eeb755a #0 id=0x7f090341 android:switcher:2131297089:0}: was android:switcher:2131297089:0 now android:switcher:2131297089:2at android.support.v4.app.BackStack

2021-01-07 10:51:14 2173 1

原创 RecyclerView StaggeredGridLayoutManager瀑布流实现中遇到的问题

1、下面的代码主要是用于布局错乱后,自动修复,以及防止item左右交换的问题。在我遇到的问题当中,如果只setGapStrategy,会导致列表往回滑动时,顶部出现空白的问题。所以需要开启系统自动计算。StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(SPAN_COUNT, StaggeredGridLayoutManager.VERTICAL); // 开启系统自动计算,列表机制默认

2020-12-30 10:59:33 2823

原创 python3基础(十三)-简单工厂模式

1、工厂模式概念工厂模块是我们最常用的实例化对象模式,是用工厂方法代替new操作的一种模式。虽然这样做,可以多做一些工作,但是会给你系统带来更大的可扩展性和尽量少的修改量(可维护性)。不过个人觉得,python的工厂模块没有其它语言如java好用,这是由于语言方面的区别,不太严谨。一个简单例子,人用斧子砍树。class Person(object):def __init__(self, n...

2018-12-10 10:27:21 857

原创 python3基础(十二)-单例模式

1、__new__方法跟跟__init__方法是一样的,由系统解析器自动调用。而__new__方法必须要有一个返回值,是返回它的一个对象实例。class User(object): def __init__(self, username, password): self.username = username self.password = password print("对象已经...

2018-11-30 11:32:29 206

原创 python3基础(十一)-属性和方法的私有化

1、修改类属性办法1:类名.属性名=值办法2:类名.方法(传入值)2、隐藏属性和函数以两个下划线开始的变量和函数,则称为隐藏属性和隐藏函数。隐藏的变量和函数只能在类里面调用,不能在类外面调用。如果需要在外部修改或访问私有属性值,则需要在类里面提供get和set方法供外部调用。class User:#在创建类的时候,获取两个参数值,为私有变量赋值def __init__(self, ...

2018-11-18 16:39:54 699

原创 python3基础(十)-类、对象和系统方法

1、类的定义:class 类名: 方法列表例如:class Car: #创建一个类 def start(self): #构建的方法里面需要加一个self,代表类本身,如果不加,会出现错误 print("") def print_car_info(self): print("名称:%s,颜色:%s"%(self.name, ...

2018-11-12 09:59:26 380

原创 python3基础(九)-系统文件相关操作

1、import osos.rename("test1.txt" , "test2.txt") #修改文件名称os.path.abspath("test2.txt") #获取文件绝对路径os.path.getsize("test2.txt") #获取文件大小2、批量修改文件名#提前在程序文件执行目录下新建一test目录,并在test目录下存入几个文件。import ...

2018-11-02 14:42:01 390

原创 python3基础(八)-文件的打开与关闭

1、打开文件,或新建一个文件2、读/写数据3、关闭文件f=open(&quot;test.txt&quot;, &quot;w&quot;)“test.txt”是文件名,但是它自动创建的文件的目录是当前目录下(相对路径),所以最好在这个地方指定一个绝对路径,比如~/home/zhantao/test.txtf.write(&quot;hello\tworld&quot;) #写文件content=f.read() #读文件,可带参数..

2018-10-28 09:23:14 2397

原创 python3基础(七)-递归函数和匿名函数

1、递归函数函数内调用自己本身函数,就叫做递归函数。计算一个数字的阶乘n!=1*2*3*4*......*n公式演变:n! = 1 * 2 * 3 * 4 * ...... * (n - 2) * (n - 1) * n = n * (n - 1) * (n - 2) * ...... * 4 * 3 * 2 * 1 = n * (n - 1)!注意:1、在函数的内部调...

2018-10-16 16:24:39 276

原创 python3基础(六)-变量

1、局部变量在函数里面定义的变量为局部变量,它只能在该函数当中使用(它的作用范围在该函数里面),出了该函数就不起作用了。如果局部变量和全局变量的名字是一样的,则在函数内会优先使用局部变量。2、全局变量在函数体外面定义的变量为全局变量,可以在后面的代码中使用。3、str(list)函数names=['zhan', 'tao', 'lishi']print(&quot;names的值为%s&quot;%n...

2018-10-11 14:28:58 556

空空如也

空空如也

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

TA关注的人

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