自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android-RecyclerView

一 前言RecyclerView作为显示列表元素的控件,其功能十分强大,RecyclerView 库会根据需要动态创建元素。当列表项滚动出屏幕时,RecyclerView 不会销毁其视图。相反,RecyclerView 会对屏幕上滚动的新列表项重用该视图。这种重用可以显著提高性能,改善应用响应能力并降低功耗。二 目录使用步骤在布局中添加RecyclerView控件创建子元素显示的布局创建适配器在活动代码中进行控制样式风格三 使用步骤1. 在布局中添加RecyclerView控件

2021-04-28 21:59:13 255

原创 Android-自定义弹窗Dialog

一 前言自定义弹窗在Android应用中十分常见,功能简单直接。二 目录创建Dialog布局创建Dialog实现类在其他活动中使用该弹窗三 实现1.创建Dialog布局我们应先创建Dialog的布局文件,在res目录中的layout目录创建dialog.xml文件。布局文件内容自行定义。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.andro

2021-04-28 14:54:33 2458

原创 Android-实用布局使用(LinearLayout、ConstraintLayout、 FrameLayout)

1.设计思想Android 的界面布局应尽量简单直接,避免使用层层嵌套,同时要充分利用padding和margin这两个属性,做到单一app能够适配多种不同分辨率的手机界面。

2021-04-10 15:42:07 577

原创 Android-ProgressBar使用

1.Android自带ProgressBar的直接使用1.添加progressbar,默认为圆形绿色 <ProgressBar android:id="@+id/progressBar" android:layout_width="100dp" android:layout_height="100dp" />2.修改指针颜色属性android:indeterminateTint="#E91E1E"//该颜色值为指针的颜色值

2021-04-07 12:07:25 113

原创 Android-AppBarLayout与RecyclerView配合使用消除边界阴影

1.设置AppBarLayout阴影为0 app:elevation="0dp"2.RecyclerView属性设置 android:overScrollMode="never" android:scrollbars="none"

2021-03-10 22:23:36 228

原创 Android-手势导航实现活动间的切换

要实现活动间的手势切换,我们需要让活动实现GestureDetector.OnGestureListener接口,现在以主活动为例解释需要哪些工作。1.示例活动代码以一个创建的空活动为例,该活动只显示了一个HelloWorld。public class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener { private GestureDetector gestureDetec

2021-01-15 18:03:02 417

原创 Github-创建SSH Key

使用 SSH 协议可以连接远程服务器和服务并向它们验证。 利用 SSH 密钥可以连接 GitHub,而无需在每次访问时都提供用户名和个人访问令牌。1.本地创建SSH Key打开在电脑上安装的Git Bash,在your_email处填写你的Github账号邮箱地址。成功以后会在对应目录下生成.ssh文件夹,进去后打开id_rsa.pub文件,复制里面的key。ssh-keygen -t rsa -C "your_email"2.将SSH Key添加进账号中3.验证是否成功ssh -T git

2021-01-14 21:53:12 201

原创 Github-在自己的项目中创建本地代码仓,将代码仓提交到Github服务器进行远程托管并更新在远程的代码仓

在初次向Github提交自己的项目时,首先要做一些准备工作:1.创建Github账号 2.在本机安装Git Bash,也就是Github对本电脑进行的控制 3.注册本电脑的SSH Key,在完成以上工作后即可开始提交我们的第一个项目到Github服务器中去,以下标题顺序为操作执行顺序。1.在Github网页中创建新的代码托管仓下面三个初始化附加文件暂时都不选择,创建仓库。仓库创建成功后出现如下界面:2.在所需要上传的项目中建立本地代码仓库以下的代码都是在Git Bash中执行的指令!第一步

2021-01-14 21:19:17 261

原创 Android-Timer定时器使用方法

1.声明变量 Timer timer;//定时器对象 TimerTask timerTask;//执行定时器的线程(要调度的任务) private int TimeInterval = 1500;//定时器执行时间间隔 private int TimeStart = 0;//定时器启动时的延迟时间2.创建定时器 if(timer == null) timer = new Timer(); if (timerTask == null) tim

2021-01-13 19:33:48 883 1

原创 Fragment实现底部导航栏,TabLayout实现顶部导航栏,二者相互嵌套完成App基本布局框架,Fragment间可左右滑动切换

示例完成这两种效果将以Android Studio新建项目Buttom Navigation Activity为基础进行扩展(也方便理解)。

2021-01-13 19:15:05 5452 14

原创 Android-实现搜索框下方动态刷新显示关联的搜索数据(以百度地图搜索为例)

要实现搜索框的动态刷新,我们需要注意两个要点,一个是数据源,即能够每次在输入搜索数据以后都能够得到一个与输入的数据相关的数据源,用来显示在RecylerView当中,另一个是RecylerView的适配器是以内部类的方式写在主活动当中,方便刷新。1.准备数据源此处是以百度地图为例,在输入框每次的状态改变后,都会调用一次百度地图SDK的SuggestionSearch事件监听,从而获得关键数据源。关键代码1:用于返回事件监听的数据 OnGetSuggestionResultListene

2021-01-13 17:23:38 843 3

原创 Android-自定义控件及布局的样式风格

1.创建.xml格式的风格样式文件在res/drawable目录中创建my_item.xml文件,命名按照项目需求决定,在复杂界面中,可能需要引用多个不同风格样式的布局文件,此时一个规范的命名有利于审阅项目结构2.决定风格样式(重点)<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rec

2021-01-13 11:10:23 586

原创 Android-Http通信之OkHttp3

1.使用第一步:导入最新的依赖注意:可以直接在Github源项目地址上查找到最新版本implementation("com.squareup.okhttp3:okhttp:4.9.0")第二步:发起请求以及获取到响应数据注意:1.请求应该放在一个子线程中去,不放的话app也不会放错,但不会执行请求和响应 2.下面是一般使用的标准格式,可以按需求进行简化 new Thread(new Runnable() { @Override publ

2021-01-13 10:43:03 202

原创 Java-对实体类重写toString方法

可以直接在实体类中重写toString()方法,可以方便list将该实体类的内容输出。 int s =random.nextInt(100); s =random.nextInt(10000)+5000; //textLocalRate.setText(s+"位"); HotAddress ha1 = new HotAddress(); ha1.se

2021-01-10 15:43:37 880

原创 Java-如何对复杂的List按目标值进行排序

1.调用函数对list对象排序关键函数:Collections.sort(hotAddressList);完整示例: HotAddress ha1 = new HotAddress(); ha1.setAddress("五一广场"); ha1.setRate(s); hotAddressList.add(ha1); int s = rando

2021-01-10 15:38:10 287

原创 Java[学习总结] -多线程(八)之线程池

1.Executor概念(1)线程池简化了线程的管理工作,Java 提供了一种灵活的线程池实现作为Executor框架的一部分任务执行的主要抽象不是Thread,而是Executor。(2)Executor作为灵活且强大的异步执行框架,其支持多种不同类型的任务执行策略,提供了一种标准的方法将任务的提交过程和执行过程解耦开发,基于生产者-消费者模式,其提交任务的线程相当于生产者,执行任务的线程相当于消费者,并用Runnable来表示任务,Executor的实现还提供了对生命周期的支持,以及统计信息收集,

2020-12-20 20:20:58 100

原创 Java[学习总结]-多线程(七)之线程之间的协作

1.wait()1.1 概念方法wait()的作用是使当前执行代码线程进行等待,是Object类的方法,该方法用来将当前线程置于“阻塞队列”中,并在wait()所在的代码处停止执行(被挂起),直到接到通知被唤醒。1.2要求在调用wait()之前,线程必须持有该对象的对象级别锁,只能在同步方法或者是同步块中调用此方法。在执行wait方法后,当前线程释放锁。会和其他线程竞争重新获得锁。如果调用wait方法没有持有锁,则会抛出异常。2.notify()2.1 概念该方法用来通知那些可能等待该对象的对

2020-12-20 19:50:24 81

原创 Java[学习总结]-多线程(六)之ThreadLocal类

1.为什么要使用ThreadLocal类1.1class ConnectionManager {private static Connection connect = null;public static synchronized Connection openConnection(){if(connect == null){connect = DriverManager.getConnection();}return connect;}public static synchronize

2020-12-20 17:29:59 116

原创 Java[学习总结]-多线程(五)之线程的同步

1.为什么要让线程同步(1)当多个线程同时访问同一个数据的时,非常容易出现线程安全。“非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,所得到的结果也就是“线程安全”的。(2)如果多个线程共同访问1个对象中的实例变量则有可能出现“非线程安全”。(3)当多个线程对共享一个变量的时候,会产生”非线程安全”问题。会导致在操作过程中会出现值被改变,值不同步的情况,进而影响程序的执行流程。例如在某些JVM中,i–(非原子操作)的操作分为如下三步:取得原值i值加载到寄存器

2020-12-20 13:22:37 241 2

原创 Java[学习总结]-多线程(四)之控制线程

1.Sleep()方法sleep方法是Thread类的一个静态方法 try{ Thread.sleep(“5* 60* 1000”); }catch(InterruptedException ex){ }//java.lang中提供的两种sleep()方式 /** * Causes the currently executing thread to sleep (temporarily cease * execution) for the specified numb

2020-12-19 22:10:55 111 1

原创 Java[学习总结]-多线程(三)之多线程的生命周期

1.概念引入当线程被创建并启动以后,它既不是一启动就进入执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)五种状态。注意:理解其生命周期需要结合多线程所运行的并发机制来执行,一方面我们需要理解其生命周期的执行方式以及存在意义,同时也要学会它的语法。2.新建状态(1)new成功创建线程,未调用start()方法当程序使用new关键字创建一个线程后,该线程就处于新建状态,但是还没有在该

2020-12-18 18:07:51 86 1

原创 Java[学习总结]-多线程(二)之Callable和FutureTask

1.使用意义从JDK1.5之后,Java提供了Callable接口,实|际_上就是Runnable接口的增强版。提供call方 法作为线程执行体,但是功能更加强大。Call方法可以有返回值,Call方法可以抛出异常。public interface Callable<V>{V call() throws Exception; .}2.使用Future(1)在并发编程时,一般使用runnable,然后给线程池,这种情况下不需要线程的结果。所以run()的返回值是void类型。如果是一

2020-12-18 10:34:53 629

原创 Java[学习总结]-多线程(一)之线程的概念及创建方式

1.并发和并行在了解线程之前,我们首先要区分并行和并发的区别:并行指的是在同一时刻,有多条指令在多个CPU上同时运行。并发指的是在同一时刻,只有一条指令运行在单一CPU上,但是由于每条指令的执行时间和切换时间都很快,所以在宏观上给人以多条指令同时运行的感觉。2.进程和线程(1)当我们打开任务管理器时,在进程这一栏会看到每个正在运行的程序,通常把这些正在运行的程序认为是一个个的任务,这个进程包含许多顺序执行流(子任务),这些执行流可以以并发的方式运行,这就是多线程。(2)CPU将轮流划分时间给每个

2020-12-17 23:36:05 135

原创 Java[学习总结]-泛型

1.泛型的引入背景在未引入泛型时,人们只能确定具体的数据类型,代码无法通用,为了解放这种限制,引入了泛型机制。在没有泛型之前,一-旦把一个对象“丢进”Java集合中,集合就会忘记对象的类型,当再次|取出该对象的时候,该对象的编译类型就变成了Object类型(运行时的类型没有变换)。当进行强制类型转换会增加程序的复杂度,也可能引入ClassCastException.2.集合类中使用泛型从JDK1.5以后,Java引入了“类型参数化(parameterized-type)”的概念,允许我们在创建集合的

2020-12-16 21:08:43 156

原创 Java[学习总结]-String类型学习记录

1.概念char类型只能表示一个单字符。为了表示一串字符,使用String(字符串)的数据类型。String message = "Welcome to Java";注意: String类型不是基本类型,而是引用类型。引用类型声明的变量称为引用变量,它引用的是一个对象,一个指向内存的地址。这里,message是-一个引用类型它引用一个内容为WelcometoJava的字符串对象。2.利用length()获取字符串长度message.length()3.连接字符串可以使用方法contact连

2020-12-15 21:30:05 135 2

原创 Java-“|”运算与“||”运算

1.“|”是二进制中的位运算,符号两边的都都会执行,又称为短路运算。2.“||”是逻辑运算,如果前面的成立,则不再执行后面的方法。 b = i < 10 | methodB(4); b = i < 10 || methodB(8);...

2020-12-15 20:01:57 1085 1

原创 Java-参数传递

1.给方法传递数组参数Java通过传值来给方法传递参数。传递基本数据类型和传递数组有很大的区别。传基本数据类型原始数据类型参数,传递实际数值.在方法里面改变该参数的值不影响方法外实参的值.传数组(引用数据类型)对于数组类型参数,传的是数组的引用。对数组的任何改变将会影响原始数组的内容。引用数据类型都会改变原对象的值。...

2020-12-15 17:35:01 71

原创 Java[学习总结]-一维数组

一维数组的定义一维数组的定义有两种方式int[] a ;//int b[];//建议使用int[] a的方式来声明,int本身为基本类型,而int[ ]为引用类型,同时在int[ ] a定义时是无法确定数组长度的,此时只是定义了一个指针,并未指向任何有用的内存,此时的a,b都无法使用.数组的初始化一维数组的初始化分为静态初始化和动态初始化。(1)动态初始化:只指定数组的长度,由系统为数组中的每个变量赋初始值int[] a = new int[5];注意整数类型:则数组元素的值.

2020-12-15 16:43:56 513 1

原创 Java-继承中的类型转换

定义A为父类,B、C为A的子类,以下为实例化方式A a = new B();A c = (A)new C();正确,但a,c都只能调用A父类中已存在的方法,若子类重写了父类的方法,在调用时优先调用子类的方法B b = (B)new A();错误,父类无法转换为子类B b = (C)new C();错误,C类无法转换为B类,二者没有实际关系...

2020-12-15 15:26:27 736

原创 Android推送功能

1.利用短信注册账号:极光推送

2020-12-14 09:21:21 199

原创 Android-RecyclerView使用方法及注意事项

添加依赖在app:目录下的build.gradle加入design库的依赖,因为我们所用的RecyclerView来自于该库。implementation 'com.android.support:design:28.0.0'在布局文件中添加RecyclerView注意:该RecyclerView所属的包类别 <androidx.recyclerview.widget.RecyclerView android:id="@+id/recycler" a.

2020-12-13 00:24:50 162

原创 Android应用闪退排错方向

安卓应用闪退问题各不相同,现整理出问题时基本的几个排错方向,以警告下次不会再犯这样的错误。1.build.gradle配置文件中,没有导入完整的依赖。在布局文件中引用控件时,相同类包下的不同控件产生冲突报错。...

2020-12-07 17:20:20 251

原创 安卓依赖导入代码

1.Android设计支持库(Android Design Support Library)Android4.0导入代码:implementation 'com.android.support:design:28.0.0'

2020-12-07 17:14:48 96

原创 计组核心知识点-第一章-计算机系统概论

1.1 计算机的分类(1).比较数字计算机和模拟计算机的特点答:模拟计算机的特点是数值由连续量来表示,运算过程是连续的(数据表示方式-电压)。数字计算机的特点是按位运算,并且不连续地跳动计算。(数据表示方式-数字0和1)(2).数字计算机如何分类?分类的依据是什么?答:根据计算机的效率、速度、价格、运行的经济性和适应性来划分,可以将数字计算机划分为专用计算机和通用计算机。根据体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格,可以将通用计算机分为多核机、单片机、PC机、服务器..

2020-11-24 11:36:36 274

原创 Java Web -总体认识

了解Web项目各级目录含义:部分目录含义

2020-11-24 11:20:14 376

原创 Java-Swing窗口风格设置为Windows

Java的Swing弹窗是由UIManager类来进行管理。此处是非常简单直接的几行代码,用于将开发的弹窗样式设置为Windows系统自带风格。注意:1.最好放在设置的JFrame弹窗代码前面,也就是最开头的位置,以防止初始化窗口的时候风格设置不成功。 try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundE

2020-06-11 11:33:43 2277

原创 Android Studio 3.5 部分控件对应资源名

1.DrawerLayout(滑动菜单)androidx.drawerlayout.widget.DrawerLayout2.FloatingActionButton(可悬浮式按钮)com.google.android.material.floatingactionbutton.FloatingActionButton3.NavigationView(滑动菜单页菜单头部)com.go...

2019-09-10 22:59:34 373 1

原创 AndroidStudio 3.5 Toolbar用法

Toolbar比Actionbar的功能更加强大,但第一行代码上对toolbar的讲解已经不再适用Android Studio 3.5版本。最开始的import android.support.v7.widget.Toolbar已经不再适用,转而成为import androidx.appcompat.widget.Toolbar;下面是Toolbar完整的创建代码:1.首先是修改values下...

2019-09-10 21:43:12 1162 1

原创 构造函数的不同声明方式

一.无形参,也无默认值:class A{public:A();}int main(){A t;//声明对象return 0;}二.带有默认参数值的构造函数:class A{public:A(int i=0){x=i;//}private:int x;}int main(){A t;//声明对象,与无参时声明对象方式一致return 0;}三...

2019-06-11 15:49:03 3342

原创 Java-显示一个不断变化的数字方法法二(利用画笔方式)

核心用法须知:1.paint与repaint2.关于setContentPane的用法及意义源代码:类一(面板类,相当于是一个画布,窗体又单独创建了一个类)package Paint;import java.awt.*;import java.util.Date;import javax.swing.*;public class ones extends JPanel { ...

2019-04-17 10:42:01 905

空空如也

空空如也

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

TA关注的人

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