自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Map接口-HashMap-HashTable-LinkedHashMap-TreeMap-ConcurrentHashMap

hash是把输入的任意对象通过哈希算法变换成固定长度的输出,该输出就是哈希值。不同的输入可能会哈希相同的输出,所以不可能从哈希值来确定唯一的输入值,但可以键哈希值作为这个对象的一个特征HashMap内部旧采用了哈希算法来存储元素。但由于哈希算法对于不同的输入可能会哈希成相同的输出,而且数组空间不可能是无限大的,所以在同个位置上就不可避免的需要存储多个元素了,这种情况就叫做哈希冲突。此外,HashMap不保证元素的存储顺序和迭代顺序。

2024-04-03 23:55:23 754

原创 Set接口-HashSet-LinkedHashSet-TreeSet

如果想要集合中的元素可重复·用ArrayList集合,基于数组的如果想要集合中的元素可重复,而且当前的增删操作明显多于查询操作·用LinkedList集合,基于链表的如果相对集合中的元素去重·用HashSet集合,基于哈希表的如果相对集合中的元素去重,而且保证存取顺序·用LinkedHashSet集合,基于哈希表和双链表,效率低于HashSet如果想对集合中的元素进行排序·用TreeSet集合,基于红黑树,后续也可以用List集合实现排序。

2024-04-03 04:36:55 619

原创 List接口-ArrayList-LinkedList

ArrayList底层维护了一个Object类型的数据elementData,可以添加null元素,线程不安全。

2024-04-02 20:03:16 347

原创 写给自己,使用ConstraintLayout进行布局。

系列文章目录文章目录系列文章目录前言一、ConstraintLayout(约束布局)是什么?二、相对定位三、角度定位四、边距五、偏移(bias)六、尺寸约束七、宽高比八、链式约束(Chains)九、辅助工具(Optimizer)十、屏障(Barrier)十一、分组(Group)十二、占位符(Placeholder)十三、辅助线(Guideline)十四、层(Layer)十五、流(Flow)前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多

2021-10-04 21:08:37 186

原创 Android ViewPager的简单使用

ViewPage流程:/** * ViewPage流程: * 1.创建三个layout当做滑动的页面 * 2.使用 getLayoutInflater().from(this); 渲染布局 直接用返回值来渲染三个布局 * 3.创建一个类型为View的集合,然后把三个渲染过的布局add进去 * 4.创建适配器: 继承PagerAdapter, 创建一个View类型的集合,添加构造方法。 * 重写4个方法: * 1.instantiateItem 添加要

2021-09-01 20:56:58 297

原创 Android开发 属性动画

先贴布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_widt

2021-08-30 22:57:51 180

原创 Android 帧动画和补间动画(旋转,缩放,平移)

首先需要把图片放在drawable文件夹下,然后创建一个frame.xml的文件<?xml version="1.0" encoding="utf-8"?><!--动画集合 我们可以看到其实frame文件是放在drawable文件下的 所以他其实是一张图片 只要添加一张背景图,就可以吧frame添加进来--><animation-list xmlns:android="http://schemas.android.com/apk/res/android">&

2021-08-30 21:49:48 238

原创 RecyclerView接口回调设置点击事件 以及给RecyclerView设置不同的布局方式

首先在适配器里面在对应的Activity中

2021-08-30 21:18:51 88

原创 Android布局之GridLayout(网格布局的使用)

常用方法android:orientation 设置水平显示还是垂直显示 线性布局也有这个属性android:columnCount 设置行的显示个数android:rowCount 设置列的显示个数 子控件属性 android:layout_column 显示在第几列 android:layout_columnSpan 横向跨几列 android:layout_columnWeight 横向剩余控件分配方式 android:layout_gravity 在网格中的显示位置

2021-08-15 22:17:03 390

原创 Android开发布局之TableLayout(表格布局)

Tablelayout配合TableRow一起使用效果更佳哦!这里可以看出来,我添加了第五个button,但是却没有显示出来,其实这也是他的特性,就是超过布局的他是不会显示出来的他有几个常用的属性:android:collapseColumns 设置需要被隐藏的列的序号,从0开始android:stretchColumns 设置允许被拉伸的列的序列号,从0开始android:shrinkColumns 设置允许被收缩的列的序列号,从0开始子口控件设置属性android:layout_colu

2021-08-15 19:51:03 293

原创 Android布局之RelativeLayout(相对布局)

常用属性根据父容器定位:layout_alignParentLeft 左对齐layout_alignParentRight 右对齐layout_alignParentTop 顶部对齐layout_alignParentBottom 底部对齐layout_centerHorizontal 水平对齐layout_centerVertical 垂直居中layout_centerInParent 中间位置根据兄弟组件定位:layout_toLeftOf 放置与参考组件的左边layout_to

2021-08-15 19:13:24 389

原创 Android开发布局篇:LinearLayout(线性布局)

常用属性://下面这两个属性代表他的子view是按照什么顺序排列的,vertical是纵向排列 horizontal是水平排列 默认是水平的 而我们的布局纵向比较多,所以平常都是设置为vertical的android:orientation="vertical 或 horizontal"gravity:控制组件所包含的子元素的对齐方式,可多个组合layout_gravity:控制该组件在父容器里的对齐方式background:为该组件设置一个背景图片,或者是用眼色覆盖divider:分割线

2021-08-15 19:02:00 545

原创 Android基础之 popupwindow(弹框)

首先啊,创建popupwindow的时候呢,其实有很多选择可以使用。 这些都是官方给出的有参构造,我们可以根据对应的参数来实现自己想要的效果 public PopupWindow(Context context) { throw new RuntimeException("Stub!"); } public PopupWindow(Context context, AttributeSet attrs) { throw new RuntimeExc

2021-08-11 23:52:34 823

原创 Android基础之AlertDialog(消息提示框)的使用

常用方法AlertDialog.Builder builder = new AlertDialog.Builder(context);构建Dialog的各种参数Builder.setIcon(int iconid);添加标题Builder.setMessage(CharSequence message);添加消息Builder.setView(View view);设置自定义布局Builder.create();创建DialogBuilder.show();显示对话框Builder.setPo

2021-08-11 23:02:18 373

原创 Android控件之 ProgressBar(进度条)的使用

这个控件常常用在进入界面时网络数据加载时使用,一旦数据加载成功后,这个进度条就可以隐藏。常用属性详解android:max:进度条的最大值android:progress:进度条已完成进度值android:indeterminate:如果已经设置为true,则进度条不精确显示进度style="android:attr/progressBarStyleHorizontal"水平进度条主要方法就这几个,下面列出来了几个小Demo可以写一下,毕竟代码还是要多练。先贴布局...

2021-08-11 15:47:51 563

原创 Android控件之 Toolbar(标题栏)的使用

这个画红线的就是toolbar了。如果你正常创建一个项目,他是自带toolbar的,如果你想把系统的toolbar换成自己的toolbar,需要在:修改为NoActionBar!!!从此刻开始,你就可以编写Toolbar了…首先就是方法介绍: //Toolbar的标题 android:background="#ffff00" app:title="主标题" app:titleTextColor="#ff0000" //主标题的起始位置

2021-08-10 20:20:48 1889 1

原创 Android Notification(通知)的基本使用

创建一个NotificationManagerNotificationManager类是一个通知管理类,这个对象是由系统维护的服务,是以单例模式的方式获取的,所以一般并不直接实例化这个对象。在Activity中,可以使用Activity.getSystemService(String)方法获取NotificationManager对象,Activity.getSystemService(String)方法可以通过Android系统级服务的句柄,返回对应的对象。在这里需要返回NotificationMana

2021-08-09 21:33:17 623

原创 Android控件之 imageView的使用

属性介绍scaleType:可以对图片进行一个填充fitStart : 保持宽高比例缩放图片,直到较长的边与image的边长相等,缩放完后将图片放在imageView的左上角fitCenter : 默认值,同上,缩放后放于中间fitEnd:同上,缩放后放于右下角fitXY:对图像的纵横方向进行独立缩放,使得该图片完全适应imageView,但是图片的宽高比可能会发生改变center:保持原图的大小,显示在imageView的中心。当原图的size大于imageView的size,超出部分裁剪处

2021-08-07 14:18:46 385

原创 Android 第一次返回提示 第二次退出

private long clickTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (SystemClock.uptimeMillis() - clickTime <= 1500) { //如果两次的时间差<1s,就不执行操作.

2021-08-06 09:23:53 139

原创 EditText常用方法的使用以及获取输入框的内容

1.android:hint 输入提示2.android:textColorHint 输入提示文字的颜色3.android:inputType 输入类型 常见的比如说限制只能输入文字 或者数字 或者手机号类型的字符串4.android:drawableXxxx 在输入框的指定方位添加图片 就是常见的左边有个小图标5.android:drawablePadding 设置图片与输入内容的间距 6.android:paddingXxxx 设置内容与边框的间距 如果直接设置padding的话

2021-07-27 22:44:04 2134

原创 Button 实现按钮的图片与文字选择器

注意!!!如果直接给Button添加背景颜色,需要在添加Bridge才行,不添加的话Button永远是默认的颜色。选择器还可以给图片添加颜色选择器,只需要一行代码就可以了 android:backgroundTint="@color/purple_200" 直接在Button里面放入这行代码就可以让图片改变颜色,但是没啥卵用我们可以让图片选择器和颜色选择器一块使用,就可以实现点击前和 点击中 图片不一样 图片的颜也不一样了//设置图片选择器 android:background="@d

2021-07-26 07:13:04 222

原创 TextView实现 阴影和跑马灯效果

阴影的实现用到的方法有://阴影颜色android:shadowColor="@color/black"//阴影的模糊度,一般设置为3android:shadowRadius="3.0"//阴影垂直方向的偏移量android:shadowDy="10.0"//阴影水平防线的偏移量android:shadowDx="10.0"具体实现:跑马灯的实现使用到的方法://设置文字一行显示 android:singleLine="true" //设置文字全部可见,没有省略号...

2021-07-24 18:36:25 176 1

原创 Cordova文件比对

1.创建一个Cordova项目:cmd命令:cordova create myapp com.myapp myapptitle此时的项目结构是这样的:www文件夹是用来进行Android css js 交互使用的,www里面存放的是原生的js源码2.为项目添加Android支持cmd命令:cordova platform add android此时项目结构是这样的:对比未添加Android支持的差距在于新增了几个文件夹,分别是:node.modules:各种依赖platforms:存

2021-07-19 15:32:03 169 2

原创 Cordova从开发 到跑路~

Cordova是什么?Cordova 是使用HTML,CSS和JavaScript构建混合移动应用程序的平台.Apache Cordova是一个开源移动开发框架,它允许您使用标准的Web技术,如HTML5,CSS3和JavaScript进行跨平台开发,避免每个移动平台本机开发语言。应用程序在针对每个平台的包装内执行,并依靠符合标准的API绑定来访问每个设备的传感器,数据和网络状态。"所以说Cordova其实就是为混合的移动应用提供了一个平台,可以让一个应用在不同平台上使用,比如说这个Android、I

2021-07-19 11:10:23 1487 1

原创 Handler

HandlerHandler是什么:Handler通常被我们用来做主线程与子线程之间的通信工具,他的应用非常广泛,可以说只要有异步线程与主线程通信的地方一定会有Handler.Handler运行机制:1.首先在主线程创建一个Handler对象 ,并重写handleMessage方法。2.然后当在子线程中需要进行更新UI的操作,我们就创建一个Message对象,并通过handler发送这条消息出去。3.之后这条消息被加入到MessageQueue队列中等待被处理,通过Looper对象会一直尝试从

2021-06-10 20:54:56 121

原创 垃圾回收机制

垃圾回收机制(GC)1.GC是什么(GC概述)垃圾收集通常呗称为GC,由虚拟机自动化完成垃圾回收工作。虽然他会自动回收,但是当我们需要排查各种内存溢出,内存泄漏问题时,当垃圾成为系统达到更高并发量的瓶颈时,我们就需要对GC的自动回收实施必要的监控和调节。2.要回收哪些区域在JVM内存模型中,有三个是不需要进行垃圾回收的:程序计数器、JVM栈、本地方法栈。因为他们的生命周期和线程同步的,随着线程的销毁,他们占用的内存会自动释放,所以只有方法区和堆需要进行GC3.如何判断对象是否存活判断对象常

2021-06-08 21:45:59 106

原创 常用设计模式!

什么是设计模式设计模式是一套被反复使用、多人知晓的、经过分类编目的、代码设计经验的总结,是可复用面向对象软件的基础。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于他于己于系统都是多赢的,设计模式使代码编制真正的工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种设计模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是他能被广泛应用的原因

2021-06-03 14:28:56 48

原创 算法啊巴里

数组的操作1.冒泡排序相邻元素两两比较,大的往后放,第一次完毕时,最大大值出现在了最大索引处运行结束效果:原理图:2.选择排序从0索引开始,依次和后面元素比较,小的元素往前放,第一次完毕,最小值出现在了最小索引处原理图:3.了解二分查找1.查找:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置录记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上

2021-06-01 21:50:13 124

原创 2021-05-26

1、面向对象的三个基本特征?面向对象的三个基本特征是:封装、继承和多态。继承:让某个类型的对象获得另一个类型的对象的属性的方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。封装:隐藏部分对象的属性和实现细节,对数据的访问只能通过外公开的接口。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。多态:对于同一个行为,不同的子类对象具有不同的表现形式。多态存在的

2021-05-26 21:53:14 43

原创 Kotlin——变量常量与类型-条件语句-函数

Kotlin的诞生2011年,jetBrains宣布开发Kotlin编程语言,这门新语言可以用来编写在java虚拟机上运行的代码,是java和scala语言之外的又一选择。2017年,Google在赢得与Oracle的诉讼一年后,Google宣布Kotlin正式获得官方支持,可用于Android应用开发。Kotlin的应用范围迅速扩展,他从一门前途光明的编程语言摇身一变,成了这个世界上最重要的移动操作系统的钦定开发语言。Kotlin语法简单,具备现代高级语言特性,并且能和java遗留代码无缝互操作。因为具

2021-05-25 22:39:27 119

原创 vlayout

vlayout全称是VirtualLayout,是一个针对RecyclerView的LayoutManager扩展。是阿里最近开源的一个库,主要提供一整套布局方案和布局间的组件复用的问题。使用导入依赖compile (‘com.alibaba.android:vlayout:1.0.4@aar’) {transitive = true}2.初始化VirtualLayoutManagerVirtualLayoutManager virtualLayoutManager = new Vi

2021-05-07 00:25:10 327

原创 ProgressBar(进度条)

进度条是UI界面中一种实用的UI组件,用于显示一个耗时操作显示出来的百分比,进度条可以动态的显示进度,避免是用户觉得系统长时间未反应,提高用户的体验。 <ProgressBar style="@android:style/Widget.ProgressBar.Large" android:layout_width="match_parent" android:layout_height="wrap_content" /><!--中环型进度条-->&

2021-05-04 14:22:40 293

原创 使用Intent在活动之间穿梭

Intent是什么:Intetnt是Android程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可被用于启动活动、启动服务以及发送广播等场景。Intent启动方式:分为两种:分别是显式Intent和隐式Intent显式Intent:Intent有多个构造函数的重载,其中一个是Intent(Context packageontext,Class<?>cls)。这个构造函数接收两个参数,第一个参数Context,

2021-05-01 18:45:04 141

原创 Handler四种更新ui的四种方式

1.使用Handler消息传递机制public class MainActivity extends Activity { private ActivityMainBinding mainBinding; Handler handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { if(msg.what==111){

2021-03-09 09:35:55 293

104道android面试题 (1).doc

面试题

2021-05-12

空空如也

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

TA关注的人

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