自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李伟驰的博客

专注安卓软件设计

  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android在Activity中加入Fragment设置Activity背景透明

在日常开发中有遇到需要做一个弹窗,弹窗里面加载fragment的情况,而fragment设置了圆角,于是就需要Activity的背景显示为透明效果,但是直接在xml里面设置是无效的,因为引入了v4的某些东西,这时候就需要通过以下设置1、在项目的color文件中声明透明的颜色<color name="translucent">#00000000</color>2...

2019-07-13 17:23:41 4192

原创 C#/WPF RichTextBox取消鼠标箭头(光标)在控件上移动时闪烁问题

C#/WPF RichTextBox取消鼠标箭头(光标)在控件上移动时闪烁问题

2022-06-01 15:25:36 1181

原创 KEYSIGHT DSOX4034A /DSOX4054A DSOX4000X系列 是德示波器SCPI通讯协议开发

先来几个例子:1.添加最大电平到示波器测量值右侧 :MEASure:VMAX CHANnel1\n2.查询最大电平值::MEASure:VMAX? CHANnel1\n3.添加最小电平到示波器测量值右侧::MEASure:VMIN CHANnel1\n4.查询最小电平值::MEASure:VMAX? CHANnel1\n语法结构:(1):MEASure表示测量量相关的(2):VMAX是测量量中有的一个命令,代表最大电平(3)如果是查询,则直接在后面跟上?号,如果是设置,则在后

2021-11-23 21:54:48 1516

原创 Java中==和equal()和hashcode()的区别和联系

==和equal的区别和联系最原始的和equal表示的都是比较对象的栈内存地址但是,在网上很多人会说他们的区别是表示比较对象的地址,equal表示比较对象的内容,这个说法并不全面。最根本的原因是,在string,integer等封装类,重写了equal方法,变成比较对象的内容了,所以在这些封装类中,可以说==比较的是这些对象的地址,equal比较的是这些对象的内容2.equal和hashcode的区别对象的equal相同hashcode一定相同,因为在堆栈中,equal比较的是对象的引用地址,在..

2021-04-08 23:35:42 330

原创 JAVA Intellij IDEA 设置代码提示不区分大小写

1.File->Settings2.找到Editor->General->Code Completion3.去掉Match Case的勾选,再点击Apply应用就可以了

2021-03-31 23:13:58 546

原创 Android沉浸式状态栏和手机虚拟按钮不兼容冲突的

Android沉浸式状态栏和手机虚拟按钮不兼容冲突的问题解决办法:在设置沉浸式代码的地方,注释掉两行代码if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN...

2020-04-30 15:57:13 468

原创 Android progressBar/水平进度条设置颜色、圆角、大小(高度)

Android progressBar/水平进度条设置颜色、圆角、大小(高度)1.设置大小(高度):在xml进行设置<ProgressBar //这3个属性 android:minHeight="8dp" android:maxHeight="8dp" android:progressDrawable="@drawable/progress_...

2020-04-18 19:23:32 9922 1

原创 Android设置通知栏/状态栏透明改变通知栏颜色和app最上部分颜色一样

Android设置通知栏/状态栏透明改变通知栏颜色和app最上部分颜色一样方法(一):沉浸式状态栏@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window....

2020-04-18 15:49:56 2524

原创 华为2020春招笔试题(Java岗位)

华为2020春招笔试(Java岗位)题目一我们的系统仅能接受指定格式的命令输入,调皮的小伙伴总是会输入一些系统无法识别的命令引起千奇百怪的结果,请实现一个简单的命令合法性的程序帮助我们进行判断。系统仅能够接受的命令格式描述如下:单命令,仅支持小写字母,如a,b等 AND命令,以AND进行的命令拼接,如a AND b OR命令,以OR进行的命令拼接,如a OR b NOT命令,...

2020-04-02 12:35:16 3004 4

原创 Android Studio真机无线调试(2020最新亲测有用)

前言虽然很多时候模拟器已经可以替代真机进行测试,但是使用真机进行测试也是很有必要的,但是有时需要连接多台设备,用数据线连接就会麻烦很多,就需要使用无线连接真机进行调试。步骤1.首先需要打开需要连接的设备的端口,网上很多都是直接adb tcpip 5555,但是这样连接对于某些高版本的手机会无效,这时候你需要把要连接的设备先用数据线进行连接,然后打开cmd 运行adb devices,可...

2020-03-30 10:20:26 4711 5

原创 JVM:这是一份详细的(GC)垃圾回收算法讲解

第一部分:判断Java对象是否存活在讲解(GC)垃圾回收算法之前,你必须了解的知识:如何判断一个Java对象是否存活1. 判断方法垃圾收集器对java堆对象是否回收的判断准则是:java对象是否存活判断对象为死亡时才会进行回收在java虚拟机中,判断对象是否存活的2中方法引用计数法 可达性分析2. 引用计数法2.1 方法描述给每个Java对象添加一个引用计数器 只...

2020-03-25 15:51:37 155

原创 Android开发px、dpi和dp之间的关系和换算

px:即像素,是手机的物理尺寸,如手机1920*1080就是宽度方向上有1080个像素点,高度方向上有1920个像素点dpi:是一个相对尺寸,即每英寸的像素点数dp:一个相对单位,与手机物理像素点无关。px换算dpi:dpi就是每英寸包含的点数,很好算,根据勾股定理,如手机为1920*1080,可以根据勾股定理得出对角线的像素为多少那么再用对角线的像素乘以屏幕规格就得出px...

2020-03-24 18:48:00 3043

原创 JAVA冒泡排序对比选择排序

很多人在学了冒泡排序和选择排序之后,就会疑问,冒泡排序和选择排序不都差不多吗,他们有什么区别?这里先说下他们的异同:相同的是,他们都是两两进行交换不同的是冒泡排序是俩个相邻数之间进行交换;而(升序)选择排序是每次从后面找到一个最小的数,与前面这个数进行对比,如果小于前面这个数才进行交换。图解冒泡排序算法:这里从后面开始,将最小的数冒上来第1次对比,5比3大,不交换第2...

2020-03-22 11:07:57 742

原创 JAVA快速排序过程图解(10步之内看懂)

废话不多说,下面图解说明快速排序算法,并附上JAVA代码假如我们对“3 4 7 2 4 3 1 4 5 9”这10个数进行快速排序第1步,先设置一个基准数,这个基准数可以是任意位置的,这里我们选择第一个数为基准数,即3,这里用红色标出3 4 7 2 4 3 1 4 5 9 第2步,设置左右两个指针,这里的指针不是指真的指针,而是...

2020-03-21 10:42:56 4412 2

原创 设计模式之代理模式原理及实例(简单讲解)

代理模式由于某些原因,客户端不想或者不能直接访问一个对象,此时可以通过一个称为“代理”的第三者来实现间接访问,该方案对应的设计模式被称为代理模式。代理模式是一种应用广泛的结构型设计模式,而且变化形式特别多,常见的代理形式有远程代理、保护代理、虚拟代理、缓冲代理、智能引用代理等。代理模式是一种结构型模式。在代模式中引入了一个新的代理对象,代理对象在客户端对象和目标对象之间起到中介的作用,...

2019-08-30 10:44:57 1567 1

原创 算法-分治算法的基本思想

问题:有16枚硬币,其中有一枚是伪造的。并且伪造的硬币的重量和真硬币重量不同,你能不能用最少的比较次数找出这枚伪造的硬币?提供一台可以用来比较两组硬币重量的仪器。解决问题:方法1:两两比较(最坏情况比较8次)方法2:硬币分成两组,一次比较两组。一次比较后,可以舍弃完全是真币的那一组,只对另一组进行下一步比较(4次)方法3:硬币分成三组,5,5,6。(3次)分治法(“分而治之...

2019-08-26 13:37:15 3049 1

原创 设计模式之建造者模式原理及实例(简单讲解)

建造者模式建造者模式可以将部件本身和它们的组装过程分开,关注如何一步一步地创建一个包含组成部分的复杂对象,用户指需要指定复杂对象的类型即可得到该对象,而无须知道其内部的具体构造细节。建造者模式是一种对象创建型模式,它将客户端与包含多个部件的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分和分配方案,只需要知道所需建造者的类型即可。建造者模式关注如何一步一步地创建一个复杂对象,不...

2019-08-26 11:00:47 540

转载 深入浅出TCP/IP协议栈

前言:最近看到一篇关于TCP/IP的文章,写得很不错,插个眼深入浅出 TCP/IP 协议栈TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事...

2019-08-24 22:07:44 238

原创 设计模式之观察者模式原理及实例(简单讲解)

观察者模式观察者模式是使用频率比较高的设计模式之一,它用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间可以没有任何相互关系,可以根据需要增加和删除观察者,使得系统更易于扩展。观察者的别名有发布-订阅(Publish-Sub...

2019-08-24 18:36:20 2088

原创 设计模式之策略模式原理及实例(简单讲解)

策略模式在软件开发中常常会遇到,要实现一个功能(例如排序、查找)有很多种算法,一种常用的方法是通过硬编码将所有的算法集中在一个类中,在该类中提供多个方法,每一个方法对应一个具体的算法;当然也可以将这些算法封装在一个统一的方法中,通过if-else等条件判断语句进行选择。这两种实现方法都可以称为硬编码,如果需要增加一种新的算法,需要修改算法类的源代码;更换算法也需要修改客户端调用代码,在这个统一...

2019-08-22 21:19:07 1444

原创 设计模式之外观模式原理及实例(简单讲解)

外观模式在外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户端与子系统内部复杂性分隔开,使得客户端只需要与外观角色打交道,而不需要与子系统内部的很多对象打交道。外观模式结构:1.Facade(外观角色):在客户端可以调用它的方法,在外观角色中可以知道相关的(一个或者多个)子系统的功能和责任。在正常情况下,它将调用从客户端发来的请求委派到相应的子系统,传...

2019-08-22 19:52:55 944

原创 设计模式之装饰模式原理及实例(简单讲解)

装饰模式在软件设计中,装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态的增加职责,使用对象之间的关联关系取代类之间的基础关系。在装饰模式中引入了装饰类,在装饰类中既可以调用未被装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。装饰模式的结构:Component(抽象构件):它是具体构件和抽象装饰类的共同父亲,声明了在具体构件中实现的业务方法,它的引入可...

2019-08-22 15:14:29 575

原创 Android初学之路—Fragment生命周期

1.创建Fragment在Activity执行完onCreate方法后,系统会创建与之关联并加载的Fragment。此时调用过程和功能如下onAttach():创建Activity和Fragment的关联,只会在activity第一次关联fragment的时候调用onCreate():实现初始化相关组件的操作onCreateView():为当前的Fragment绘制UI布局(组...

2019-08-21 13:48:37 160

原创 Android初学之路—Android系统框架

从下到上依次为: 1.Linux内核(Linux Kernel)Android系统的最底层是基于Linux内核实现的,它负责硬件驱动、网络管理、电源管理、系统安全、内存管理等。例如它可以负责显示驱动、基于Linux的帧缓存驱动、键盘驱动、Flash驱动、摄像头驱动、音频视频驱动、WiFi驱动等。 2. Android核心类库(Libraries)Android系...

2019-08-21 11:19:22 526

原创 Android初学之路—Service生命周期

Service启动方式有两种,对应上图的两种方法一种是startService这种方式启动的服务,是不会因为启动它的Activity被销毁而停止(在该Activity中没直接声明停止服务时)另一种是bindService它与第一种启动方式对比的区别是,Service和Activity进行绑定,如果Activity销毁了,即使在Activity中没有声明解绑方法,...

2019-08-21 09:38:03 188

原创 Android初学之路—Activity生命周期详解

Activity生命周期首先先了解生命周期的四个状态活动状态:Activity在用户界面中位于最上层,完全能被用户看到,最重要的是能和用户交互,比如点击按钮,滑动手势等暂停暂停:Activity界面被部分遮挡,该界面不再位于用户界面的最上层,且用户不能喝它进行交互停止状态:完全不能被用户看到,就是界面处于后台的时候非活动状态:就是除了上面三种状态中的Activity,比如你把一...

2019-08-20 16:58:51 372

原创 采用eventBus传递消息,Fragment多层的消息传递,fragment控制其他fragment的显示状态

最近开发遇到一个问题,就是有一个tab(使用fragment实现的)控制了4个fragment页面,叫ABDC吧,在C中点击C的item进入一个Fragment F,再点击F里面的一个控件就会退出当前的fragment F,并打开一个新的Fragment G ,这个G它显示在 tab的Fragment的上层,此时,你发现可以点击tab,但是却对 G没有影响,不能对G有什么控制。...

2019-07-27 10:29:24 610

原创 RecyclerView禁止滑动

只需要在需要使用的地方重写canScrollVertically或者canScrollHorizontally方法private void initRecyclerView(RecyclerView recyclerView, HomePageAdapter adapter) { GridLayoutManager gridLayoutManager= new GridLay...

2019-07-18 18:00:36 1975 1

原创 BRVAH配置(让RecyclerView变得更加高效)

1、在app build.gradle的dependencies里面添加api "com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.46"具体最新版本可以转到githubhttps://github.com/CymChad/BaseRecyclerViewAdapterHelper/releases前面的是api或者imp...

2019-07-18 10:54:12 214

原创 Android 配置butterknife

1、添加依赖在app bulde.gradle里面添加implementation 'com.jakewharton:butterknife:10.1.0'annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'在 library bulde.gradle里面添加依赖classpath 'com.j...

2019-07-17 11:06:36 319

android教学管理系统app,支持学生签到、选课、考试、评论,教师管理学生、课程、编辑试卷

该APP用于教师对课堂的管理,有学生和教师两种身份,教师同时担任管理员。教师通过APP进行发布签到、作业、讨论等,并且管理学生账号以及课堂增删等管理工作;学生可以进行签到、提交作业,发表讨论等操作。 (1)首先设计注册登录页面,打开软件会出现一个包含“登录”和“注册”两个按钮的界面,登陆界面和注册界面的输入框相同。其中教师的账号名为工号,学生的账号名为学号,方便管理。 (2)学生端:学生端分为首页、我的课程、个人中心 1)首页:首页包括搜索框,以及各种课程的分类框。可以在首页搜索框搜索课程,进行课程的添加;也可以在自己感兴趣的分类中查找自己感兴趣的课程,进行课程的添加。点击每个课程,都会看到课程的相关介绍。 2)我的课程:我的课程显示已选课程,点击已选课程,显示课程简介、任课老师、班级学生人数等基本信息。进入某一已选课程,其学习分为三部分:签到、讨论、测评。 签到框代替了教师上课的点名,根据教师发布签到的形式进行签到,签到界面会显示签到的有效时间,签到完成后显示签到记录; 讨论区显示教师发布的各个讨论话题,点入某一话题可以进行讨论;在该讨论区还可以进行资源的上传与下载; 测评框显示老师布置的作业以及考核,并显示完成截止时间,点击某一布置的作业,则可进入进行作业的完成,完成后进行提交则作业完成成功。 3)个人中心:个人中心显示自己的账号名、课程数、最近浏览、关于软件、退出登录。 (3)教师端:教师端分为首页、我的课程、管理、个人中心 1)首页显示创建的课程、可以进行课程的创建、删除和修改。 2)我的课程显示教师创建的所有课程,点击某一创建的课程,课程界面分为三部分:签到、讨论、测评。 签到框用于发布签到,发布签到时设置签到格式以及签到时间,发布完成后显示历史发布签到信息,点击某个签到项,进入后显示统计的签到的学生; 讨论区教师发布讨论话题,上传相关资料,设置话题截止时间,点击某一话题,会显示发言的学生; 测评区发布作业和测试,设置完成的截止时间,点击某一作业或考试,显示完成的学生,点击编辑按钮进行试卷的评选; 3)管理,管理分为课程管理和学生管理,两者都根据不同的课程进行管理,管理界面显示教师名下的课程,点击某一课程,学生管理显示选择该课程的学生,点击某一学生,显示该学生的签到情况、讨论情况以及测评情况。课程管理则是将课程的测评,签到,讨论情况由高到低进行统计; 4)个人中心:个人中心显示教师的账号、创建课程数、删除课程数、上传资源数、关于软件、退出登录。

2020-04-18

空空如也

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

TA关注的人

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