自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Git学习记录

Git分区Git 本地数据管理,大概可以分为三个区,工作区,暂存区和版本库。工作区(Working Directory)是我们直接编辑的地方,例如 Android Studio 打开的项目,记事本打开的文本等,肉眼可见,直接操作。暂存区(Stage 或 Index)数据暂时存放的区域,可在工作区和版本库之间进行数据的友好交流。版本库(commit History)存放已经提交的数据,push 的时候,就是把这个区的数据 push 到远程仓库了。用户通过git命令进行提交时,一个变化过程:

2021-04-19 21:42:33 149

原创 View的工作流程--onMeasure

View何时开始绘制?-requestLayout()Window是View的载体,在ViewRootImpl的setView方法中添加Window到WMS之前。会调用requestLayout绘制整颗View Hierarchy的绘制。Activity在onResume执行结束后才会进行view的绘制和显现。在handleResumeAcitvity()方法执行完Activity的onResume()方法后,会把DecorView加载到Window中,并同时创建ViewRootImpl对象。Act

2020-10-24 21:56:46 249

原创 ARouter的简单使用

ARouter的官方文档借鉴ARouter框架可以解决组件化的通信问题,组件化工程下的业务关系,业务之间将不再直接引用和依赖,而是通过“路由”这样一个中专站间接产生联系基本使用1.添加依赖2.初始化Application进行ARouter的初始化public class BaseApplication extends Application { private boo...

2020-02-23 23:15:14 188

原创 EventBus的使用

EventBus 是一款在 Android 开发中使用的发布/订阅事件总线框架,基于观察者模式,将事件的接收者和发送者分离,避免复杂且容易出错的依赖关系和生命周期问题,简化了组件之间的通信。EventBus的优点通过ThreadMode方便灵活的指定工作线程速度快功能多,使用方便对事件通信双方进行解耦简化的组件间交流的方式使用在使用之前先将EventBus作为依赖项添加进项...

2020-02-09 10:35:24 274 1

原创 DataBinding-BindingAdapter注解

@BindingAdapter自定义属性注解dataBinding中自定义属性依赖于注解@BindingAdapter作用于方法,这个方法可以写在任何地方这个注解面向一个public static方法{}内部表示使用时这个属性的名字。例如:@BindingAdapter({“imageUrl”}),imageUrl为属性的名称简单应用-加载图片public class ImageH...

2019-12-07 22:06:28 1493

转载 自定义控件之绘图-drawText()

一、概述1.基线canvas在利用drawText绘制文字时,是有规则的,这个规则就是基线,当基线确定时,文字的位置也就确定了如图上面红色的线就是基线2.canvase的drawText()1.canvas.drawText()与基线public class CircleView extends View { public CircleView(Context context...

2019-12-01 11:06:34 287

原创 JAVA线程

Object的notify和notifyAll方法的区别notify:只会唤醒等待该锁的其中一个线程notifyAll:唤醒等待锁的所有线程每个对象都拥有两个池,锁池和等待池锁池:假设线程A已经拥有了某个对象的锁,而其它的线程想要调用这个对象的某个synchronized方法(或者synchronized块),由于这些线程在进入对象的synchronized方法之前必须先获得该对象的...

2019-11-17 17:38:12 74

原创 AsyncTask的简单使用

AsyncTask的简单使用为了更加方便对UI的操作,Android提供了AsyncTask,借助AsyncTask可以简单的从子线程切换到主线程。参数解释:1、Params:这是一个任务参数,一般我们会定义成String类型的,例如要获取网络资源的URL地址2、Progress:任务执行的刻度,一般我们会定义成Integer类型3、Result:返回结果类型,本例为Integer...

2019-11-03 00:15:47 113

转载 JSON数据的解析

JSON数据的解析在解析JSON数据时,往往遇到的JSON格式并没有书上列举的那么简单, 在此我举例几种JSON格式:这下面JSON数据来自于一篇别人的博客{“name”:“李四”,“age”:99,“hobby”:“爱好是练习截拳道”}用这一对花括号括起来的是一个JSON对象private void parseJSONWithJSONObject(String jsonDat...

2019-10-20 11:05:26 127

原创 OkHttp的使用

OkHttp的使用步骤:首先在项目中添加OkHttp的依赖库,编辑app/build.gradle文件:implementation 'com.squareup.okhttp3:okhttp:4.2.2'get的请求的使用方法get的同步请求:同步请求在请求时需要开启子线程,请求成功后需要跳转到UI线程修改UI使用如下:private void sendHttpResult(...

2019-10-20 10:31:13 114

原创 背景图和状态栏融合

实现背景图和状态栏融合简单的方法if(Build.VERSION.SDK_INT >= 21) { View decroView = getWindow().getDecorView(); decroView.setSystemUiVisibility( View.SYSTEM_UI_FLAG_L...

2019-10-13 18:36:14 221

转载 滑动菜单

滑动菜单指的是:菜单项在初始状态下是隐藏的,用户可以通过滑动的方式将菜单显示出来。DrawerLayout布局<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/a...

2019-10-13 18:16:42 234

原创 RecyclerView

RecyclerView的简单使用RecyclerView的使用步骤:添加依赖库 --> 准备适配器,让适配器继承RecyclerView.Adapter --> MainAvtivity创建Adapter对象 --> 创建LinerLayoutManager对象,并设置到RecyclerView中 --> RecyclerView的setAdapter()方法完成...

2019-09-28 18:48:04 91

原创 ListView

ListView的简单使用ListView用来数据的展示,ListView允许用户通过手指上下滑动的方式,将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕。ListView的使用步骤:提供数据 --> 创建适配器 --> listView.setAdapter(adapter) 将adapter对象传递进去ArrayAdapter:它可以同过泛型来指定要...

2019-09-28 18:04:27 83

转载 LocationManager的简单使用

LocationManager在Android中可以根据LocationManager来获取设备所在的地理信息根据需求可以将定位的代码移动到所需的地方或者可以稍加改动获取城市的信息MainActivity 中:package com.example.myapplicationpp;import android.Manifest;import android.app.Activity;...

2019-09-20 00:39:58 1619 1

原创 线性表

线性表的逻辑结构线性表是n个元素的有限序列。逻辑关系:表中有且仅有一个开始结点,有且仅有一个终端结点;除开始结点外,每个结点都有一个前驱结点;除终端 结点外,表中的每个结点都有一个后继结点。顺序表定义:顺序存储是所有的结点元素存放在一块连续的存储区域中,用存储结点的物理位置来体现结点之间的逻辑关系的存储方法。在高级语言中,一块连续的存储空间通常可用一个数组来表示。因此,顺序存储通常用一...

2019-09-05 19:25:53 760

原创 聊天室-客户端

现在只能实现群聊,不能实现私聊图片如下:登录界面:聊天界面:在AndroidStudio中可以开启两个模拟器,也可以手机和模拟器,ip地址是电脑的ipv4地址,可以在cmd通过ipconfig查看自己的ipv4地址登录界面的布局:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=...

2019-08-10 09:43:16 311

原创 聊天室-服务器

class ChatThread implements Runnable{ private Socket socket; private OutputStream out; private InputStream reader; public ChatThread(Socket socket) throws IOException{ &n...

2019-08-10 09:10:38 294

原创 简易计算器的实现

计算器的布局如图:<?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" andr...

2019-08-09 20:21:46 658

原创 Java多线程

进程和线程的区别进程 : 是程序的执行过程,具有动态性,即运行的程序就叫进程,不运行就叫程序;线程:系统中的最小执行单元,同一进程中有多个线程,线程可以共享资源,一旦出现共享资源,必须注意线程安全。java线程的分类守护线程用户线程通过Thread.setDaemon(false)设置为用户线程;通过Thread.setDaemon(true)设置为守护线程。如果不设置次属性,默...

2019-08-04 12:50:41 67

原创 常见工具类

System类的概述和方法使用System类的概述:System 类包含一些有用的类字段和方法。它不能被实例化。成员方法:public static void gc() ------- 运行垃圾回收器。finalize()方法是一个类对象在销毁时会被调用的方法,垃圾收集器在发现这个类对象不会再被使用时就会回收内存,也就是销毁该对象,从而finalize()被调用了。JDK带的垃圾回收...

2019-06-15 17:57:39 289

原创 基本包装类及Arrays

数组的冒泡排序与选择排序冒泡排序与选择排序 (加载别人的一篇博客)Arrays 类的概述与方法的使用Arrays 类的概述:此类包含用来操作数组(比如排序和查找)的各种方法。此类好包含一个允许将数组作为列表来查看的静态工厂方法的使用Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法toString方法sort方法5、Arrays.binarySear...

2019-06-13 23:25:21 93

原创 Java-StringBuffer类

StringBuffer类类的概述:我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题线程安全的可变字符序列StringBuffer和String的区别前者长度和内容可变,后者不可变。如果使用前者做字符串的拼接,不会浪费太多的资源。Java中的String,StringBuilder,Stri...

2019-06-13 22:14:36 74

原创 JAVA基本数据类型

注释语言注释分为三种单行注释多行注释文档注释 单行注释:将双斜线(//)放在需注释内容之前。多行注释:"/*"表示注释开始, */ 表示注释结束。(用法与C语言的相似)标识符标识符就是用于给 Java 程序中变量、类、方法等命名的符号。规则:①可以由字母,数字,下划线(_),美元符($)组成,但不能包含@,%,空格等其他特殊字符,不能以数字开头。②不能是Java关...

2019-05-18 18:23:53 65

原创 全排列与函数原形的实现

数的全排列如:输入一个数,输出1~n的全排列假如有编号有1、2、3的3张扑和编号为1、2、3的3个盒子,现在需要将这3张扑克牌分别放到3个盒子里面,并且每个盒子有且只有一张扑克牌。拿着3张扑克牌,每次到一个盒子面前是,都先放1号,再放2号,再放3号。首先走到1号盒子前,将1号扑克牌放到1号盒子中,现在手中有两张牌,走到2号盒子前,放入第二张牌,放好后来到3号盒子,此时手中只剩一张3号牌了,所...

2019-04-20 22:43:16 118

原创 单向链表的相关操作

单向链表的插入,删除,修改,查询。单向链表的插入1>头插法struct node *insert(struct node *phead){ struct node *pnew; pnew=(struct node *)malloc(sizeof(struct node)); printf("insert:"); scanf("%d",&pnew->data);...

2019-04-12 18:50:31 178

原创 单向链表简单的创建

单向链表的介绍及创建链表的定义:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。有时使用数组时显得不灵活,这时候使用链表,比如插入,删除等时比较好用。链表的实现C语言中可以使用...

2019-04-12 16:53:33 2299

原创 指针地址

地址(Adress) 1.地址的作用 2.地址的表示 3.变量地址的表示 4.变量单元的分配 5.地址的计算指针 1.指针的定义 2.一级指针 3.多级指针是二级指针 4.野指针地址(Adress)1.地址的作用系统用来查找数据位置的依据,标识存储单元空间。2.地址的表示i>地址是一个整数值,(十六进制表示)每8bit一个址。ii>...

2019-04-07 09:31:43 1471

空空如也

空空如也

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

TA关注的人

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