自定义博客皮肤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)
  • 资源 (7)
  • 收藏
  • 关注

原创 关于Databinding相关 XXX.inflate(layoutInflater) must not be null问题

如com.abc.login->com.xyz.login,请进行如下步骤。

2023-03-10 15:00:23 424 1

原创 gRPC&protocol buffers

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代.

2022-04-19 17:25:27 161

原创 Android Mvp架构的小demo

文章目录前言MVP模式是MVC模式在Android上的一种变体,要介绍MVP就得先介绍MVC。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些Controller的东西在里面。这对于开发与维护来说不太友好,耦合度大高了。把Activity的View和Controller抽离出来就变成了View和Presenter,这就是MVP模式。![在这里插入图片描述](https://img-blog.csdnimg.cn/e7469fcca61a47a1807a

2022-03-07 20:56:09 2895

原创 Android 自定义控件之---饼图

文章目录前言一、创建PieChartView继承View类?二、创建一些对象,用于绘图三,onDraw方法1.循环把四个扇形画出来2.我们把第三个扇形抽出来,需要做特殊处理四,效果展示总结效果确实比较简单,但是这个例子可以很好的作为初学Android自定义控件的开发者的一个小练习。code前言如下图这样的一个饼图效果,看上去很简单,不如让我们用Android自定义控件的知识来实现它一、创建PieChartView继承View类?public class PieChartView extends

2022-01-13 00:07:41 1758

原创 android 文字居中的两种方案--静态文字--动态文字

文章目录前言一、静态文字垂直居中?code效果二、动态文字垂直居中你可能会好奇,为什么动态文字不继续用上面静态文字的解决方案呢?不是很方便简洁吗?解决方案code:效果:前言一行文字在View中垂直居中不是一件容易的事情,下面针对静态文字和动态文字(内容会变动)的情况提出两种居中的方案。一、静态文字垂直居中?由于静态文字不怎么变动,我们只需要测量出这段文字的bounds,在垂直方向上减去中心点的偏移就可以实现居中code//静态文字内容private const val CONTENT .

2021-12-06 19:55:02 2089

原创 xfermode 和预期效果不符

项目场景:利用xfermode画一个矩形和原,设置不同的xfermode类型达到不同的效果,就是用两个图形测试下面的效果问题描述:如果我们这么写:canvas.apply { val saveLayer = saveLayer(150.dp, 50.dp, 300.dp, 200.dp, paint) drawRect(150.dp, 100.dp, 250.dp, 200.dp, paint) paint.xfermode = mode

2021-12-05 20:18:23 228

原创 自定义View-->仪表盘

文章目录前言一、先画带锯齿的弧形代码和注释如下:重要点1.PathDashPathEffect2. 刻度和间隔二、画指针总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、先画带锯齿的弧形代码和注释如下:import android.content.Contextimport android.graphics.*impor

2021-12-05 16:03:25 2263

原创 历次会议记录

2021/10/151. 一个月对同学们的观察同学们已经进来一个月了,学习技术的主动性不是很强。十一前安排的安卓学习,有个同学才开始,有些同学才学了一点控件这十几天的安卓学习,同学的花费的时间,普遍十个小时,仅有一位张阳同学超过了20个小时。主动性普遍不太强。2. review随手新建一个类文件,首字母也要大写,养成好的习惯。单例模式构造方法私有数据库中表命名要规范sql语句全大写或全小写,风格统一代码写完后多余空行删掉不要用return等关键字来命名类或者方法跨类通用的常量,单独

2021-10-15 17:37:53 268

原创 手写简易的viewPage--Android---自定义控件

文章目录前言效果展示一、思路是什么?1.一页一个view占满屏幕,所以把自己的所有空间给childView去测量2.摆放时一页摆放一个子view,可以看出left,right是进行累加的3.viewGroup要抢占子view的touch序列4.viewGroup自己的onTouchEvent前言在学习了view的点击事件的效应后,我们自己来写一个viewPage,功能比较简单,只有两个页面,我们可以左右滑动来翻页效果展示一、思路是什么?1.一页一个view占满屏幕,所以把自己的所有空间给ch

2021-10-06 20:36:12 226

原创 多点触控 Android 自定义控件

文章目录前言一、接力棒型或抢占型二、协作型思路code1.引入库2.读入数据总结前言在之前的那篇博客中我们做了一个可以随手指移动的图片view,只能支持单指操控,如果我们多指触控就没事我们想要的效果多点触控可以有下面这三种类型①:接力棒型或抢占型②:协作型③:互不干扰型一、接力棒型或抢占型示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、协作型思路①:确认一个触摸点作为控制图片的特殊触摸点②:移动时就把拥有图片控制权的触点作为唯一触点③

2021-10-06 12:13:19 225

原创 Android 画板 多指操控 多指绘图

文章目录前言一、思路二、效果展示三:完整代码前言是否可以做一个画板,多根手指可以同时绘图,手指移开,移开手指对应的绘图路径也跟着消失一、思路①:每根手指对应一个path,记录手指移动时的路径val actionIndex = event.actionIndexval path = Path()path.moveTo(event.getX(actionIndex), event.getY(actionIndex))②:创建一个map,让pointerID作为key,path作为value

2021-10-06 12:09:31 410

原创 图片随手指移动 --自定义控件--onTouchEvent

文章目录前言一、思路?二、完整代码前言写一个可以随手指移动而移动的图片,用自定义view实现,重写onTouchEvent方法一、思路?①:定义两个偏移量作为绘制图片时的起始位置 private var offsetX = 0f private var offsetY = 0f②:按下时记录手指的位置声明private var downX = 0fprivate var downY = 0f记录 MotionEvent.ACTION_DOWN

2021-10-05 15:11:25 260

原创 Android自定义view---手势识别,双击,惯性滑动,相册图片效果

文章目录前言一、GestureDetectorCompat是什么?二、使用步骤1.定义一个GestureDetectorCompat的实例2.重写方法,实现自定义效果①想让检测器消费一系列的触摸事件,那么就要在重写方法`onDown`中去返回true,那么后续的一系列触摸过程才能让手势检测器获取②既然我们要去实现双击效果,那么就得再给手势检测器设置一个监听③实现双击变大变小④重写onDoubleTap④实现惯性滑动总结完整代码前言在view中我们可以重写onTouchEvent来自定义点击事件,但是M

2021-10-04 15:52:29 1283

原创 MaterialEditText 标签浮动 自定义view

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言做两个动画,监听文本变化,有文本时从下往上飘出一个标签,内容和`EditText`的`hint`内容一致。没有文本(开始时,或者文本删除干净时)标签从上往下逐渐隐藏。二、实现步骤1.创建类MaterialEditText去继承EditText2.创建一些基本变量3.设置文本监听4.写文字5.XML中控制标签动画的开关①自定义属性②使用MaterialEditText时去设置该属性②在MaterialEditText.class

2021-09-30 15:44:49 251

原创 java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.view

项目场景:在我实现自定义流式布局时,我使用了measureChildWithMargins对问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mmInStream.read(buffer); mHandler.obtainMessage(READ_DATA, bytes, -

2021-09-30 12:22:06 1227

原创 自定义流式布局--kotlin实现

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、使用原因1.流式布局中放了许多小的view,要求我们把这些子view妥善的摆放在一个viewgroup中,如果我们在xmL中去实现这个效果,这就要求我们去对每个子view设置margin,padding,还有位置属性。这可能需要花很多时间去摆放,去设置。2.如果我们做一个搜索内容的历史记录,那么我们事先是不知道子view的条目和具体内容的,所以我们也没法在XML中去书写,那么我们就需要一个viewgroup去对数据进行操作,

2021-09-30 11:30:05 1340

原创 Android 安卓自定义流式布局

文章目录前言一、如何实现?二、使用步骤1.重写onMeasure方法2.重写onLayout三、项目代码总结前言最近接触了自定义ViewGroup,准备写一个自定义流式布局练练手,流式布局广泛应用于安卓开发中,许多APP的历史记录就应用了这一模式一、如何实现?需要去继承ViewGroup,重写ViewGroup的方法二、使用步骤1.重写onMeasure方法代码如下: /** * 测量控件本身的大小 宽和高 根据子内容获取 * * @pa.

2021-07-21 16:52:42 304 1

原创 2021-07-09Android Studio Layout 预览只显示两个小扳手怎么办

删除布局代码中的 android:autofillHints=""这一行代码即可。

2021-07-09 16:30:15 2224

原创 2021-07-07Recyclerview 实现几行item均分Recycleview的高度--一个数目固定的均分空间的Recyclerview

项目场景:我们用Recyclerview做了一个键盘,我们希望几行键盘可以均分Recyclerview的空间,以适应不同的机型,避免在不同的屏幕上出现键盘下方有空隙,或者显示不全的情况想要的效果:问题描述:解决方案:Adapter中定义一个成员变量protected int along;在onCreateViewHolder中设置为Recyclerview的高度➗行数,即每行所占的空间。 public GridViewAdapter.InnerHolder onCreateV

2021-07-07 16:35:21 703

原创 2021-07-01Type parameter ‘com.sevegame.calculator.fragment.general.GeneralFragment‘ is not within it

项目场景:写了一个BaseFragment,使用了泛型,需要传入一个layout的ViewBindingpublic abstract class BaseFragment<T extends ViewBinding> extends Fragment { protected final String TAG = this.getClass().getSimpleName(); protected T binding;问题描述:之后写了一个BaseFragment的实

2021-07-01 10:20:29 406

原创 2021-06-20 Bug-->This AsyncTask class should be static or leaks might occur

项目场景:当我在项目中需要对一个复杂操作进行异步处理时,需要使用AsyncTask进行异步,而我们写完后,android studio提示内存泄漏,需要让这个AsyncTask内部类成为静态类,成为静态类后这个问题也没有得到解决,还是会报这个This AsyncTask class should be static or leaks might occur问题描述:如何解决AsyncTask会报内存泄漏的警告。原因分析:AsyncTask有对使用它的Activity或者Fragment有隐

2021-06-20 20:02:34 527

原创 工厂方法模式使用反射实现

文章目录前言一、设计Product接口二、设计两个产品接口的实现类三,设计一个工厂抽象类四,实现一个工厂抽象类五,测试总结前言工厂模式这是一种常见的方法,需要哪个产品就生产哪一个,利用反射的方法可以更加简洁的来实现。只需在工厂方法中传入一个Class类来决定生产哪种产品类一、设计Product接口只是用来测试,所以只实现一个方法method()public interface IProduct { void method();}二、设计两个产品接口的实现类ProductA :

2021-06-18 18:36:08 459

原创 单例模式笔记(4)----->枚举实现单例模式

枚举实现单例模式public enum Singleton { INSTANCE; public void doSomething() { System.out.println("Hello World!"); }}

2021-06-16 19:34:45 65

原创 单例模式笔记(3)----->静态内部类单例模式

学习内容:静态内部类实现单例模式public class Singleton { private Singleton() { } public static Singleton getInstance() { return SingletonHolder.instance; } private static class SingletonHolder { private static final Singleton instan

2021-06-16 19:20:55 57

原创 单例模式笔记(2)----->Double Check Lock

学习内容:DCL实现单例模式1.什么事DCL方法实现单例因为构造方法的引用还是在引用getInstance的时候,所以双重锁实现单例还是懒汉模式,为什么叫双重锁,双重锁有什么优势,下面我们基于代码来分析原因/** * 双重锁实现单例 */public class Singleton { private static volatile Singleton instance; private Singleton() { } public static Singl

2021-06-16 18:12:20 56

原创 单例模式笔记(1)----->懒汉单例模式及其反单例化

文章目录前言一、懒汉单例模式是什么?二、使用步骤1.定义Singleton类2.测试单例3.序列化来打破单例总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、懒汉单例模式是什么?声明一个静态对象,用户第一次调用getInstance时才初始化,区别于恶汉模式中类加载就对静态对象进行初始化。二、使用步骤1.定义Singlet

2021-06-16 13:53:23 94

原创 Android———>DataBinging--->小案例

文章目录前言项目流程1.gradle中对DataBinding进行配置2.xml页面3,Beauty 类4,Activity总结项目文件前言DataBinging是jetpack的一个组件,意在降低xml和活动的耦合性,让我们来写一个小demo来认识一下databinding,熟悉一下使用流程项目流程1.gradle中对DataBinding进行配置在该文件的defaultConfig中添加下面的命令 dataBinding { enabled = tr

2021-06-06 14:54:43 183 3

原创 Android--Service④-->案例二--->音乐播放器

文章目录前言一、怎么分层?二、使用步骤1.布局2.接口的设计1.UI层接口的设计2.逻辑层接口的设计3.服务4.Presenter-------->Binder的子类总结前言今天我们利用把UI层和逻辑层分开,使用service做一个音乐播放器一、怎么分层?建立一个接口,有若干方法来控制UI层的显示二、使用步骤1.布局效果如下:xml代码如下:<?xml version="1.0" encoding="utf-8"?><androidx.constraintl

2021-06-05 10:39:23 502 1

原创 Android--Service③-->案例一--->银行服务

文章目录前言一、项目介绍二、实现步骤1.写三个接口2.三个Binder的子类来应对不同的请求2.定义一个ervice总结前言在学习了服务的启动,停止,调用服务内部的方法后,让我们来实战巩固一下提示:以下是本篇文章正文内容,下面案例可供参考一、项目介绍有一家银行,给不同人员提供了不同的服务,如下图银行工作人员在普通用户的基础上拓展了两个功能银行行长在银行工作人员的基础上拓展了一个功能二、实现步骤1.写三个接口IUser:用户接口public interface IUser {

2021-06-02 20:12:28 244 3

原创 Android--Service②-->接口重构来服务调用服务内部的方法

文章目录前言一、使用步骤1.创建接口2.在服务中定义一个实现了接口的IBinder的子类,并在onBind中返回3.在活动中定义一个接口去接受服务返回的IBinder对象二、使用接口的优势1.隐藏内部实现的细节,暴露接口三、完整代码四、项目压缩包前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、使用步骤1.创建接口public

2021-06-01 17:44:27 171 2

原创 Android--Service①-->启动服务,停止服务,调用服务内部方法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Service是什么?1.继承了ContextWrapper2.ContextWrapper继承自Context3.总结:Service可以理解为没有界面的活动4.自定义一个service类二. 启动,停止和方法调用2.1 使用StartService启动服务,和使用StopService去停止服务2.11 用两个控件来控制服务的启动和停止2.12 在Activity中去实现两个点击事件2.13 测试2.2 使用bindSe

2021-06-01 15:52:07 1734

原创 Android Studio计算器解决三角函数,反三角函数等

文章目录前言一、XML布局二、MainActivity总结1.2.3.前言需要设计一款通用计算器,包含基本的四则运算,还引入了括号,还要解决一些特殊的三角函数,反三角函数等,浏览了CSDN发现这方面的博客比较少,多为一些只能解决四则运算的简易计算器,功能比较单一。最后在一个引入了括号,只能解决四则运算的计算器的基础上,进行功能的扩充,经过四五天时间,最终写出。即下图这些功能。一、XML布局<?xml version="1.0" encoding="utf-8"?><L.

2021-02-01 20:16:46 2316

原创 笔记06-----解析xml-----dom4j

学习目标:学会用dom4j解析xml学习内容:cs服务使用xml传输信息的全过程创建一个car类对象,用作传输的元public class Car { String cname; String color; int price; Car(String cname,String color,int price) { this.cname = cname; this.color = color; this.pri

2021-01-22 17:21:28 123 1

原创 笔记05-----Java多线程

学习目标:初步掌握Java多线程学习内容:1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:2021/1/2014:30~18:00

2021-01-21 11:28:12 103

原创 笔记03----IO流(3)

学习目标:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识学习内容:**以abc.txt为例**1、输入缓存流 File file = new File("D:\\IOtest\\test5\\abc.txt"); FileInputStream in = new FileInputStream(file); BufferedInputStream inBuffer = new BufferedInputStream(in);

2021-01-20 11:39:50 76

原创 笔记02----IO流(2)

学习目标:提示:这里可以添加学习目标例如:一周掌握 Java 入门知识学习内容:提示:这里可以添加要学的内容例题1学习时间:提示:这里可以添加计划学习的时间2021/1/1914:30~18:00...

2021-01-19 16:54:05 71

原创 笔记01----IO流(1)

学习目标:学习目标:掌握I/O流学习内容:IO流的概念以字符或字节的形式,把外部文件中的数据读到程序中------输入流把程序中的数据,以字符或者字节的形式输出----输出流控制台1、 搭建 Java 开发环境2、 掌握 Java 基本语法3、 掌握条件语句4、 掌握循环语句学习时间:提示:这里可以添加计划学习的时间例如:1、 2021/1/19上午9:00~12:00# 欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。

2021-01-19 14:37:54 58

FlowLayout.zip

对应博客:https://blog.csdn.net/lbj23vs6/article/details/118969699

2021-07-21

Calculator.zip

现代软件工程结课的大作业

2021-06-18

MyApplication.zip

对应博客:https://blog.csdn.net/lbj23vs6/article/details/117625555

2021-06-06

MusicPlayer.zip

对应博客:https://blog.csdn.net/lbj23vs6/article/details/117573058

2021-06-05

TestService.zip

对应博客:https://blog.csdn.net/lbj23vs6/article/details/117478893

2021-06-02

TestService.zip

对应博客:https://blog.csdn.net/lbj23vs6/article/details/117447693

2021-06-01

TestService.zip

关联 https://blog.csdn.net/lbj23vs6/article/details/117442920

2021-06-01

空空如也

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

TA关注的人

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