- 博客(27)
- 收藏
- 关注
转载 Android开发 监听edittext
EditText的addTextChangedListener方法介绍https://blog.csdn.net/w1070216393/article/details/83214646
2021-01-07 19:51:53
217
原创 fragment基础用法梳理
fragment基础用法梳理这两天项目用到了fragment,虽然之前有学过,但一用的时候感觉还是很蒙蔽的。所以这里做一个简单的梳理,方便以后使用。(还是要换个键盘,黑轴打字太累了)fragment是依附activity存在的。想要让fragment加载到activity中,有两种方式,静态的和动态的:一、静态加载创建一个Fragment_One 类,继承fragment,public class Fragment_One extends Fragment { @Nullable
2021-01-06 23:03:42
330
原创 Android开发 通俗的讲一下接口回调
接口回调在正式接触了Android开发半年后,我终于弄明白了接口回调的意义和用法,实在不容易,鼓掌(还是自己太菜了)先来介绍一下接口回调的意思,以及用处:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。(我其实是不太愿意看这种官方话的讲解的,很难懂)那咱们来由浅入深的来讲吧,先说一个生活中的例子。如果工作中,学习中,我
2020-12-27 20:32:14
800
3
原创 Android开发 handler实现延时操作
handler实现延时操作步骤:创建匿名内部类,或者内部类,往里面存放msg.what对应的要实现的操作。 final Handler handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { if (msg.what == 11){ tvFirst.setText("sssss");
2020-12-02 13:37:28
1766
原创 Android application类相关记录
本篇文章记录一些Android中application类的作用,内容介绍。Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (Singleton)模式的一个类。且 == Application 对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期== 。因为它是全局唯一的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过 Application 来进行一些:数据传递、数据共享、数
2020-10-18 21:55:17
183
原创 消息队列(mq)解读
什么是消息队列消息队列,我们简称她为MQ(Message Queue)。先来看队列(Queue)这个词,它是一种先进先出的数据结构。Java里已经实现了很多的队列了,那为什么我们还要消息队列(mq)这种中间件呢,消息队列可以简单的理解为:把要传输的数据放在队列中。(把数据放到消息队列中的叫做生产者)(从消息队列中取数据的叫消费者)为什么要用消息队列即消息队列的好处:解耦我最近真的是发现,所有厉害的技术或者设计模式的目的都不外乎 解耦 二字。举例:现有一个系统A,可以产生user
2020-09-27 22:31:08
487
原创 EventBus使用介绍
EventBus介绍EventBus是一种用于Android的事件发布-订阅总线,由GreenRobot开发,它利用发布/订阅者者模式来对项目进行解耦,它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。工作模式:Publisher(发布者)通过post()方法,把Event事件发布出去,Subscriber(订阅者)在onEvent()方法中接收事件。EventBus使用方式1.在build.gradle文件中导入EventBu
2020-09-21 00:45:43
193
原创 PCM总结
PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值被连续地输出、传输、处理或记录到存储介质中,所有这些组成了数字音频的产生过程。采样频率采样频率是设备一秒钟内对模拟信号的采样次数,在主流的采
2020-09-20 23:23:42
4250
原创 Android开发 音频AudioRecord记录
AudioRecord关于音频不仅有AudioRecord,还有一个MediaRecorder。MediaRecorder基于文件录音,系统已实现大量的封装,集成了录音、编码、压缩等,支持少量的音频格式文件,操作起来更加简单,而AudioRecord基于字节流录音,AudioTrack更接近底层,使用起来更加灵活,能实现更多的功能。对比如下:AudioRecord优点:可以实现语音的实时处理,进行边录边播,对音频的实时处理,AudioTrack 更接近底层。缺点:输出的是PCM的语音数据,如果保存
2020-09-13 22:54:52
611
原创 自定义view绘制波浪图 贝塞尔曲线
波浪图先上一张效果图感觉还是挺炫酷的。其中用到的技术点就是贝塞尔曲线,说到贝塞尔曲线,它能做的东西就太多了,qq未读消息气泡拖拽,波浪效果,轨迹变化的动画都可以依赖贝塞尔曲线实现。而我这里也不是自己造轮子,而是站在巨人的肩膀上。Android已经封装好了一个方法,就是path类的quadTo方法来绘制二阶贝塞尔曲线。更多阶的咱们暂且不谈。1、构造贝塞尔曲线二阶贝塞尔曲线介绍先来描述一下各个点和线的含义,上图这条红线就是我们的贝塞尔曲线,P0是起始点,P2是结束点,P1是插入进来的控制点,我
2020-09-06 21:28:21
392
原创 音频播放
使用MediaPlayer播放音频介绍使用MediaPlayer播放的音频格式:.mp3(常用), .ogg(完全免费),.3gp(文件体积小,移动性强),.wav(高音质)MediaPlayer是Android提供的用来控制音频/视频文件或流播放的类。使用步骤通过创建MediaPlayer对象来装载音频文件。其中有两种方法:第一种是通过create方法,而create方法有两种重载形式,一种是通过指定的资源文件来装载音频,另一种是通过指定的Uri来装载音频;第二种是通过无参的构造方法,通过se
2020-08-31 00:47:20
207
原创 自定义View滑动冲突
自定义View滑动冲突滑动冲突解决方法其实比较固定。滑动冲突的种类有三种发生的场景:场景1——外部滑动方向和内部滑动方向不一致场景2——外部滑动方向和内部滑动方向不一致场景3——上面两种情况的嵌套处理规则滑动路径和水平形成的夹角水平方向和垂直方向的距离差距某些特殊情况可根据水平和垂直方向的速度差解决方法针对第一种场景有两种方法:外部拦截,内部拦截外部拦截当外部上下滑动,内部左右滑动,我们先让外部拦截,当滑动是上下的时候,将事件拦截下来,如果是左右,就传递给内部。那么如
2020-08-24 19:46:02
152
原创 绘图
绘图onDraw绘图,简单来说就是利用onDraw方法绘制一些图案。而继续细分,则分为以下几个部分1、画笔画布的作用画笔:paint类,主要用于指定颜色,透明度,笔的粗细,填充样式。画布:canvas类,在画布上绘制图案,可以改变画布的尺寸和颜色等等。举例:绘制简单的矩形:public class MyView extends View { public MyView(Context context) { super(context); } publ
2020-08-24 00:53:37
151
原创 自定义View(浅析)
自定义View自定义创建方式创建自定义View类MNView,继承View类,重写构造函数public class MNView extends View { private String text; public MNView(Context context) { this(context, null); } public MNView(Context context, @Nullable AttributeSet attrs) {
2020-08-17 22:40:22
118
原创 Android 物理按键复习
物理按键一、 检测物理按键的方法:不用注册监听器,直接在活动页面检测物理按键即可,即重写Activity的onKeyDown方法。 public boolean onKeyDown(int keyCode, KeyEvent event) { desc = String.format("%s物理按键的编码是%d", desc, keyCode); if (keyCode == KeyEvent.KEYCODE_BACK) { desc = Stri
2020-08-14 00:44:01
361
原创 实现自定义View随手指移动的两种方法
实现自定义View随手指移动的两种方法一、通过setX,setY设置view坐标首先,用setOnTouchListener监听View控件,否则随意在屏幕上点一个点,view就跟着跑 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main
2020-08-13 13:47:14
750
原创 SIP协议基础理解
SIP协议一、含义SIP(Session Initiation Protocol,会话初始协议)是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。可以支持并应用于语音、视频、数据等多媒体业务,同时也可以应用于Presence(呈现)、Instant Message(即时消息)等特色业务。可以说,有IP网络的地方就有SIP协议的存在。二、对比H.323视频会议,是指位于两个或多个地点的人们,通过通信设备和网络,进行面对面交谈的会议。目前,视频会议系统的主流技术标准有2个,H.
2020-08-12 21:32:40
660
原创 属性动画(ValueAnimator),对象动画(ObjectAnimator)
两种动画使用方法记录1、ObjectAnimator。。。。。ObjectAnimator:直接动画所给的对象,他会调用对象对应属性的get/set方法吧属性的值设置给对象的属性,直接实现动画效果。有四大框架(使用方法其实差不多)alpha(透明度动画)scaleX/scaleY(缩放动画)translateX/translateY(平移动画)rotation(旋转动画)private void iniAnimation(){ // 透明度动画 Objec
2020-08-12 01:10:49
431
原创 Android开发 触摸(touch)事件,补间动画的使用方法(部分),自定义view部分使用方法
1、触摸事件给某一控件添加监听器,setOnTouchListener,里面自动重写onTouch方法。rabbit.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) {在onTouch方法里面可以监听按下屏幕,移动手指,抬起手指三个动作。switch (mot
2020-08-10 00:31:20
275
原创 Java六大设计原则(个人简记)
Java六大设计原则1、单一职责简单来说,就是一个类只负责一项职责。优点明显:可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多提高类的可读性,提高系统的可维护性变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响面临的阻碍:职责扩散,意思就是说本来A类只负责call职责,有一天,call职责细化成了call_dog和call_cat, 这样如果还是只有A类来负责这两个职责,这样就形成了职责扩散。这样做
2020-08-06 16:26:45
155
原创 Android基础一 UI设计
一、UI设计View类位于Android.view包当中;View类的子类一般都位于Android.widget包中android:id属性,为组件设置一个唯一的标识。例:android:id = "@+id/user"android:background,设置背景颜色或者背景图片android:padding, 设置上下左右四个方向的内边距还可以具体设置四个方向不同的内边距,paddingLeft,paddingTop,paddingRight,paddingBotton1、Viewg
2020-08-05 00:58:29
554
原创 组件化之AppJoint和ARouter
组件化之AppJoint和ARouter1、分类application:apk,安装包,会依赖library,而不会被别的library依赖。library:aar,依赖,可以依赖别的依赖,也可以被别的library依赖。一个依赖(上级)依赖于另一个依赖(下级)包名不一样,类名自然也就不一样了,这样自然就不会产生类冲突。但如果是在res里面,比如drawable里有photo.jpg文件,这种情况,大概率会产生冲突。如果冲突了,上级的资源会覆盖下级的资源(只是显示的时候改变,并不会更改下级资源)
2020-08-05 00:08:06
326
原创 集合与锁
写点与Java中的集合和锁相关的内容,大多都和面试相关,如有错误望在评论区指正这些东西是室友小F深夜教的,总结的不是特别好,见谅。hashmap的复杂度是O(1)一、先说一下list。List 的两个实现类是arraylist和linklistLinklist实现方法是链表,特点是很方便的进行扩容,新建一个节点,接到链表的尾部,缺点是只擅长顺序查找,遍历,不能随机访问。Arrayli...
2019-07-30 14:57:45
230
原创 MySQL学习
这篇文章是我学习MySQL进行的知识点整理,主要是对之前不会的地方进行了一些研究@祈祷杰克希望多做评论,无论是好评或者意见都欢迎,抬杠就免了吧增删改查暂且不论,菜鸟教程上面都有。主要的有:NULL值处理,事务,索引,alter,临时表,外键,复制表,连接的使用一、null值处理在用where条件查询的时候,如果里面什么值也没有的情况,是null,就可以用此种方法查询首先,null值占空...
2019-07-26 16:57:33
192
原创 spring中的ioc常用注解
概述:spring中的注解的作用就是为了用注解的方式,实现之前xml的配置曾经的XML的配置: <bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl" scope="" init-method="" destory-method=""> <propert...
2019-07-12 23:15:14
168
原创 SPRING的知识点整理
Spring知识点的整理(IOC部分)spring中基于xml的ioc的配置@祈祷杰克本篇博客是根据bilibili内的一部教学视频spring教学idea版整理的知识点总结,可能理解不够深刻,里面可能有些内容有错误,见谅,希望以后的我看到之后能把错误的地方改过来,把不完善的地方补充完整。https://www.bilibili.com/video/av47952931/?p=1*这个...
2019-07-12 17:47:21
134
转载 Java中的反射机制(粗学)
Java中的反射机制@祈祷杰克第一次用,不太熟练,只是给自己看的,所以美观与否都不重要。学习spring的时候教学视频提到了反射机制,但我学习java基础的时候并未涉及,特来补漏。只是肤浅地了解一下。这篇是参照https://www.jianshu.com/p/5b3acad0f025写的,详情见网址。反射Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方...
2019-07-02 00:15:54
244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人