自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kotlin基础知识

kotlin全部使用对象数据类型,完全抛弃了java的基本数据类型,例如在java中int是关键字,在kotlin中。在kotlin中表示只对当前类和子类可见,kotlin抛弃java中的default使用。关键字即可创建一个单例类,不需要私有化构造函数,可以直接在类中编写需要的函数。),如果对变量延迟赋值,就无法自动推导类型,需要显式地声明变量。(value的简写)用来声明一个不可变的变量。在变量声明中指定数据类型时,应在冒号后面添加一个空格。kotlin中任何一个非抽象类默认不可被继承,在类前加。

2024-05-13 19:03:29 342 1

原创 线程与进程

在 Java 线程中,通过一个整型成员变量 priority 来控制优先级,优先级的范 围从 1~10,在线程构建的时候可以通过 setPriority(int)方法来修改优先级,默认 优先级是 5,优先级高的线程分配时间片的数量要多于优先级低的线程。安全的中止则是其他线程通过调用某个线程 A 的 interrupt()方法对其进行中 断操作, 中断好比其他线程对该线程打了个招呼,“A,你要中断了”,不代表 线程 A 会立即停止自己的工作,同样的 A 线程完全可以不理会这种中断请求。

2024-05-06 20:43:15 724

原创 Git

git commit -a -a是代表add,把所有的change加到git index里然后再commit。git diff --cached 或 $ git diff --staged 查看尚未提交的更新。git checkout --track origin/dev 切换到远程dev分支。git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。git commit -m "remove" 移除文件(从Git中删除)git rm --cached a.a 移除文件(只从暂存区中删除)

2024-04-19 21:20:43 1437

原创 Android rxjava

RxJava是ReactiveX在JVM上的一个实现,ReactiveX使用Observable序列组合异步和基于事件的程序的库;是一个基于事件流、实现异步操作的库。RxJava在Java环境下使用,它通过Observable(可观测对象)和Subscriber(订阅者)来实现异步编程模型。利用各种操作符,我们可以对数据流进行变换、过滤、合并等操作,从而完成复杂的异步任务。Observable被观察者理解为起点,Observer观察者理解为终点,通过Subscribe连接两者。

2024-04-15 21:11:47 386

原创 Gson

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象(反序列化),或者反过来(序列化)。在bulid.gradle中添加依赖。

2024-04-11 20:47:04 357

原创 Android retrofit

封装了OkHttp,也是由Square公司贡献的一个处理网络请求的开源项目。在bulid.gradle中添加依赖。

2024-04-10 14:22:25 869 1

原创 Android OkHttp

OkHttp按照Http协议规则实现了缓存的处理,缓存是比如:当我们发起第一次请求之后,如果后续还需要进行同样的请求,此时如果符合缓存规则,则可以减少与服务器的网络通信,直接从本地文件缓存中读取响应返回给请求者。Cookie是某些网站为了辨别用户身份,进行会话跟踪(比如确定登陆状态)而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。协议规定 POST 提交的数据必须放在请求体中,但协议并没有规定数据必须使用什么编码方式。数据被编码为一条消息,一般用于文件上传;

2024-04-07 20:51:06 522

原创 Android Glide

或做了某些类型的修改后,你可能需要重新构建 (rebuild) 你的项目。当待加载的图片包含透明像素时,禁用交叉淡入会导致动画完成后占位符在图片后面仍然可见。3. fallback 如果请求的url/model为 null 的时候展示的图片 (如果没有设置,还是展示placeholder的占位符)2. error 如果请求失败的时候展示的图片 (如果没有设置,还是展示placeholder的占位符)Transitions定义 Glide 如何从占位符到新加载的图片,或从缩略图到全尺寸图像过渡。

2024-04-04 15:45:28 2184 1

原创 Android 高德地图

点击Android地图SDK,下拉找到相关下载,下载aar包,下载完成后解压,将解压后的包拷贝至项目libs,在 dependencies中添加 implementation files("libs/下载的aar包")在创建的应用上点击"添加key"按钮,在弹出的对话框中,依次输入key名称,选择服务平台为“Android平台”,输入发布版安全码 SHA1、以及 Package。如果定义了ANDROID_SDK_HOME,则将文件放置在SDK的子文件夹.android中。(从第三步开始参考)

2024-04-03 20:39:59 1407 1

原创 Android MediaPlayer

在调用start()方法之前,程序会调用prepare()方法或prepareAsync()方法解析,prepare()为同步操作,一般用于解析较小的文件,prepareAsync()为异步操作,一般用于解析较大的文件。调用stop()方法停止播放,之后调用release()方法将MediaPlayer对象占用资源释放。如果使用 MediaPlayer 流式传输基于网络的内容,则必须请求网络访问权限。内部 URI,例如您可能从内容解析器那获取的 URI。prepare()方法,直接调用start()方法。

2024-03-30 17:02:32 489

原创 Android MediaRecorder

创建MediaRecordActivity,使用Intent连接MainActivity和MediaRecordActivity。MediaRecordActivity中设置MediaRecorder。AndroidManifest.xml中添加权限标记。MediaRecorder详细请参考。动态添加权限MainActivity。MediaRecorder状态图。

2024-03-30 12:39:16 479 1

原创 Android数据传递

【代码】Android数据传递。

2024-03-28 20:24:30 274

原创 Android数据存储:SQLite、Room

在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s)等数据类型,只不过在运算或保存时会转成对应的五种数据类型。对于与数据库关联的每个 DAO 类,数据库类必须定义一个具有零参数的抽象方法,并返回 DAO 类的实例。,这样就不会保留架构版本记录的备份。

2024-03-27 17:04:40 806 1

原创 Android数据存储:SharedPreferences

1.SharedPreferences是使用键值对的方式来存储数据的,保存为.xml文件。2.不能存储大量信息,主要用来保存一些轻量级的数据(字符串、基本数据类型),比如应用程序的各种配置信息,以及一些简单的账号、密码等。不支持多进程读写。3.commit 方法是同步进行的,apply 是异步进行的,两者都是以替换上次数据来进行数据更新的,如果同时有两个地方调用 commit 或者 apply ,以最后一次调用为最终数据更新。

2024-03-26 19:58:31 417

原创 Fragment 与 ViewPager的联合应用(2)

6.在MainActivity中创建initTabView()函数 实现View.OnClickListener函数并监听。8.实现viewpager和底部的响应 在initViewPager()中添加。7.将bottom_layout添加至activity_main中。基本完成viewpager和frgement简单的联合应用。5.创建底部布局bottom_layout。

2024-03-22 20:12:04 272

原创 Fragment 与 ViewPager的联合应用(1)

2.创建一个BlankFragment,fragment_blank.xml的TextView 设置一个ID属性 android:id="@+id/tv"4.在MainActivity中创建一个函数初始化viewpager。1.在activity_main中创建ViewPager布局。3.创建MyFragmentPagerAdapter类。最终效果:简单模拟微信界面。初步完成界面的左右滑动。

2024-03-22 19:56:18 219

原创 Android Studio Cannot resolve symbol “xxxx”

问题:打开项目多出提示Cannot resolve symbol 'xxxx',甚至默认的空项目也会提示,Android Studio之前正常且项目没做任何修改。1.Build–>Clean Project后再Build–>Rebuild Project。3.File–>Invalidate Caches/Restart(勾选清除缓存或文件)本来已经准备卸载重装AS,随手点了一下Repair IDE没想到修复成功了。查询别人的解决方法大概都是以下三种。

2024-03-20 11:17:49 266

原创 动态加载Fragment

3.开启一个事务 FragmentTransaction,一般调用fragmentManager的beginTransaction()2.获取FragmentManager的实例,一般都是通过getSupportFragmentManager()4. 使用transaction进行 fragment的替换。1.创建一个待处理的fragment对象。

2024-03-19 12:22:15 363

原创 Android布局

为该组件设置一个背景图片,或者是直接用颜色覆盖。控制组件所包含的子元素的对齐方式,可多个组合。控制该组件在父容器里的对其方式。设置允许被拉伸的列的列序号,从。设置允许被收缩的列的列序号,从。该属性是用来等比例的划分区域。设置需要被隐藏的列的序号,从。设置组件与父容器的边距。布局中组件的排列方式。设置分割线所在的位置,放置于参考组件的左边。放置于参考组件的右边。放置于参考组件的上方。放置于参考组件的下方。对齐参考组件的上边界。对齐参考组件的下边界。对齐参考组件的左边界。设置组件内部元素的边距。

2024-03-16 11:02:31 343 1

原创 PopupWindow

相对某个控件的位置(正左下方),无偏移。:相对某个控件的位置,有偏移。

2024-03-15 17:02:16 327 1

原创 AlertDialog

构建Dialog的各种参数添加ICON添加标题添加消息设置自定义布局创建Dialog显示对话框确定按钮取消按钮中间按钮。

2024-03-15 16:48:12 357 1

原创 Toolbar

app:titleTextColor= "#ff0000" 标题颜色。默认的Toolbar在res/values/themes.xml中。app:titleMarginStart= "90dp" 标题间距。改为NoActionBar可以取消默认的Toolbar。

2024-03-15 16:05:35 318 1

原创 Notification

系统级服务的句柄,返回对应的对象。类是一个通知管理器类,这个对象是由系统维护的服务,是以单例模式的方式获得,所以。对象,可以保证程序在所有的版本上都能正常工作。Android8.0。开启通知,不会弹出,但没有提示音,状态栏中无显示。新增了通知渠道这个概念,如果没有设置,则通知无法在。开启通知,不会弹出,不发出提示音,状态栏中显示。开启通知,不会弹出,发出提示音,状态栏中显示。系统开始,对于通知栏图标的设计进行了修改。开启通知,会弹出,发出提示音,状态栏中显示。要求,所有应用程序的通知栏图标,应该只使用。

2024-03-15 15:47:10 373 1

原创 ProgressBar

则进度条不精确显示进度。:进度条已完成进度值。

2024-03-15 11:55:32 406 1

原创 ImageView

对图像的横纵方向进行独立缩放,使得该图片完全适应。保持宽高比缩放图片,直到较长的边与。,但是图片的宽高比可能会发生改变。保持宽高比缩放图片,直到完全覆盖。的左上角开始绘制原图, 原图超过。默认值,同上,缩放后放于中间。,可能会出现图片的显示不完全。同上,缩放后放于右下角。保持宽高比缩放图片,直到。保持原图的大小,显示在。,超过部分裁剪处理。缩放完成后将图片放在。不改变原图的大小,从。

2024-03-15 11:47:56 373 1

原创 EditText

在输入框的指定方位添加图片。设置图片与输入内容的间距。设置内容与边框的间距。

2024-03-15 11:40:31 361 1

原创 Button

资源的一种,可以根据不同的状态,设置不同的图片效果,关。通过setOnLongClickListener方法设置。通过setOnClickListener方法设置。通过setOnTouchListener方法设置。1.创建一个布局文件,添加button控件。确定中间一个子控件是否处于显示状态。确定第一个子控件是否处于显示状态。确定最后一个子控件是否处于显示状态。确定是否只显示一个子控件。控件是否处于活动状态。控件包含多个子控件时。控件包含多个子控件时。控件包含多个子控件时。控件包含多个子控件时。

2024-03-15 11:23:22 343 1

原创 TextView

6. textStyle:设置字体风格,三个可选值: normal(无效果),bold(加粗),italic(斜体)2. android:shadowRadius:设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0。3. android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置。4. android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置。5. android:marqueeRepeatLimit:字幕动画重复的次数。

2024-03-14 18:43:26 340

原创 List、Set、Map集合

TreeSet:不允许放入null值,元素唯一且已经排好序,采用二叉树来实现,唯一性同样需要重写hashCode和equals()方法,二叉树结构保证了元素的有序性。ArrayList:基于数组实现,是一个动态数组,非线程安全,效率高,增删慢,查找快。LinkedList:基于链表实现,是一个双向链表,线程不安全,增删快,查找慢。Vector:基于数组实现,动态数组,线程安全,效率低,增删慢,查找慢。JDK1.8 API 中文文档 高清完整版 CHM。

2024-03-13 20:13:37 325

原创 compareTo方法

compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较。参数可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型。

2024-03-13 13:56:24 492

原创 day5静态代理

一般来说,被代理对象和代理对象是一对一的关系,当然一个代理对象对应多个被代理对象也是可以的。代理角色:需要实现抽象角色接口,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。静态代理,一对一则会出现时静态代理对象量多、代码量大,从而导致代码复杂,可维护性差的问题,一对多则代理对象会出现扩展能力差的问题。真实角色:需要实现抽象角色接口,定义了真实角色所要实现的业务逻辑,以便供代理角色调用。抽象角色:指代理角色和真实角色对外提供的公共方法,一般为一个接口。

2024-03-08 19:25:20 317 1

原创 Day4反射

Method getDeclaredMethod(String name,/class[] params)--使用特写的参数类型,获得类声明的命名的方法。Constructor getConstructor(Class[] params)-- 获得使用特殊的参数类型的public构造函数(包括父类)Method getMethod(String name,class[] params)--使用特定的参数类型,获得命名的公共方法。Method[ ] getMethods() --获得类的所有公共方法。

2024-03-06 19:37:53 362 1

原创 注解器不执行/Messager 日志看不到

原因:路径错误我的路径是正确路径是。

2024-03-04 20:50:54 338

原创 day3注解

Java中所有的注解,默认实现Annotation接口,注解的声明使用@interface 关键字。在定义注解时,注解类也能够使用其他的注解声明。对注解类型进行注解的注解类,我们称之为meta-annotation(元注解)。一般的,我们在定义自定义注解时,需要指定的元注解有两个︰。另外还有@Documented 与@Inherited元注解,前者用于被javadoc工具提取成文档,后者表示允许子类继承父类中定义的注解。在使用注解时,如果定义的注解中的类型元素无默认值,则必须进行传值。

2024-03-02 19:29:09 349

原创 Day2通配符

类型参数变量的方法的话,set 方法是不允许被调用的,会出现编译错误,get 方法则没问题,会返回一个X。不知道,但是可以肯定的说,Object。方法来说,编译器不知道它需要的确切类型,但是 X。的子类)编译器是可以确定知道的。及其子类型,并且不能写入非null 的数据。方法可以被调用的,且能传入的参数只能是。集合元素可以是任意类型,无意义,类型参数变量的方法的话,set。表示类型的上界,类型参数是。表示类型的下界,类型参数是。表示类型的上界,类型参数是。表示类型的下界,类型参数是。方法只知道传入的是个。

2024-03-01 17:35:37 361 1

原创 day1泛型

的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的。数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定。泛型中的类型在使用时指定,不需要强制类型转换。适用于多种数据类型执行相同的代码。称为泛型类、泛型接口、泛型方法。不能在静态域或方法中引用类型变量。泛型类是允许有多个类型变量的。运行时类型查询只适用于原始类型。不能用基本类型实例化类型参数。不能创建参数化类型的数组。不能捕获泛型类的实例。

2024-02-29 19:04:00 313

原创 静态内部类和非静态内部类区别

非静态内部类能够访问外部类的静态和非静态成员,静态内部类只能访问外部类的静态成员。非静态内部类不能脱离外部类被创建,静态内部类可以脱离外部类被创建。

2023-07-07 11:36:02 30 1

空空如也

空空如也

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

TA关注的人

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