自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TouchOfSun的博客

我这个人很懒,什么都不说!

  • 博客(51)
  • 资源 (2)
  • 收藏
  • 关注

原创 java.lang.NoSuchMethodError: No static method onPullDistance(Landroid/widget/EdgeEffect;FF)F in clas

android:overScrollMode="never" 可以设置滑动到边缘时的光晕效果。为什么突然间滑动边缘时不设置边缘效果会报错,首先检查一下对应版本问题。debug一下最近问题定位到了这里。这行代码:试着禁掉边缘效果。

2023-10-13 17:00:20 324

原创 【记录文】Android自定义Dialog实现圆角对话框

【记录文】Android自定义Dialog实现圆角对话框

2023-09-25 16:26:09 693

原创 [Studio]Manifest merger failed with multiple errors, see logs 解决方法

我的主工程中已经使用了android:theme=”@style/HeartView”,与ImagePicker中的android:theme=”@style/AppTheme”合并时候出错。记录一个引入库时经常会出错的问题。

2023-09-21 10:57:01 462

原创 RecyclerView滑动时添加缩放效果

此方法带一个dx参数,表示RecyclerView已经产生了dx的滑动距离,此时我们需要做的是调用相关方法,进行重新布局。onMeasure:用来测量RecyclerView的大小的。通常不用重写此方法,但是在一种情况下必须重写,LayouytManager不支持自动测量再重写它。难点:一开始想通过ItemDecoration实现头像的重叠,但是滚动后随着缩放动画的变化,距离一直变大,child的位置发生了变化,需要对以下方法进行重写。4、缩放的实现是随着距离的变化率而实现,没使用Animation。

2023-09-19 08:55:05 373

原创 自定义VIEW:实现图形头像

看一下效果,有很多头像的选择,有的是圆的,有的是方的,可能还其他的形状我倒是没看见过,demo中实现一个圆形头像的选择。(1)CLAMP:拉伸,在x方向上是图片的最后一列像素重复平铺,而y方向是最后一行往下拉伸。但是图片选择中必须要进行缩放与边框的重写,使图片完全填充当前的View。(2)REPEAT: 重复,很容易理解,图片重复平铺过去。测试发现多次替换图片时由于缓存原因,图片更新不及时。(3)MIRROR:镜像,就是将图片翻转。先自定义实现头像上传View。

2023-09-19 08:52:40 124

原创 ExoPlayer实现本地视频播放器

最近单位项目不太忙,决定写个Demo实现一个自己的本地视频播放器,界面参考了完美视频播放器。本来还想再弄弄,但是时间不够用,先以工作为主吧,在工作中进步。

2023-09-19 08:51:46 417

原创 android 图片上添加文字水印记录贴

Bitmap bmp = BitmapFactory.decodeFile(path).copy(Bitmap.Config.ARGB_8888, true);Canvas canvas = new Canvas(bmp);Paint paint = new Paint();paint.setDither(true);paint.setFilterBitmap(true);int width = bmp.getWidth();int height = bmp.getHeight();Rect.

2021-01-27 09:21:48 183

原创 OKHTTP源码解析笔记(一)

OkHttpClient默认为OHC1、OHC配置一些默认设置//第一步获取okHttpClient对象OkHttpClient client = new OkHttpClient.Builder() .cache(new Cache(getCacheDir(),10240*1024)) .connectTimeout(20, TimeUnit.SECO...

2019-11-14 09:57:40 157

原创 夜神模拟器无法连接到AS肿么办

第一步:首先打开模拟器安装位置我的位置:D:\Program Files\Nox\bin打开AS中的存放adb的位置,用AS下的adb文件来替换D:\Program Files\Nox\bin下的nox.adb第二步:在当前bin目录下进行到命令行执行命令:nox_adb.exe connect 127.0.0.1:62001,连接模拟器...

2019-10-16 09:23:20 834

原创 Program type already present: android.support.v4.os.ResultReceiver$1

试过了几种解决方法:1、gradle.properties中添加下面两句android.useAndroidX=trueandroid.enableJetifier=true运行一下,没用

2019-10-09 13:05:45 6550 1

原创 BufferKnife原理-注解

前言:ButterKnife是一个专注于Android系统的View注入框架,以前总是要写很多findViewById来找到View对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项...

2019-10-09 10:19:40 269

原创 Android架构

1.应用层:应用是用java语言编写的运行在虚拟机上的程序,比如Email客户端,SMS短消息程序,日历等。2.应用框架层:这一层是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。3.系统运行库(C/C++库以及Android运行库)层:当使用An...

2019-09-08 21:38:44 188

原创 Android网络通信框架-OKHttp源码解析

OkHttp作为现代的Http请求客户端,可以在java或者android使用,有以下特点1、支持SPDY2、连接池,实现Http1.1长连接和http2.0多路复用3、拦截器,内部预置拦截器和自定义拦截器支持,可以往HTTP请求时插入逻辑和职责4、支持GZI和HTTP缓存使用方法:OkHttpClient client = new OkHttpClient();...

2019-08-13 20:47:05 179

原创 MVP框架搭建过程

[了解内存泄露]Java 内存模型(JMM)规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存。 线程的工作内存中保存了该线程中用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。 不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量的传递均需要自己的工作内存和主存之间进行数据同步进行。 而 JMM 就作用于工作内存和主存之间数据同步过...

2019-07-27 20:52:45 100

原创 Maven配置

假如我们要使用阿里云的public repository的话,我们可以在maven的settings.xml中,加入如下配置,就可以使用阿里云提供的镜像库了。具体配置如下:在元素里面加一个配置<id>aliyun</id><mirrorOf>centeral</mirrorOf><name>aliyun mirror<...

2019-04-09 09:10:06 169

原创 Tomcat初步学习笔记

一、Tomcat目录结构Tomcattomcat是JAVA写的,所以它的运行是需要JVM的1、JVM启动参数配置配置环境变量启动脚本:2、server.xmlserver结构:Connector:Connector可以有多个默认是阻塞是连接三、请求处理流程浏览器先发送请求connector接收到请求并处理,Container负责根据请求内容生成响应,由Connec...

2019-04-04 16:26:49 226

原创 Java Web 入门学习笔记

作为一个Android开发者而言,入门Spring多少有是有点底气的,反正也决定要入门的,没底气也得有底气啊!一、入门以下图为例:Java Web 实际上就是要教会我们在WEB服务器上如何处理WEB浏览器的请求然后给出相应的结果二、特性Cookie:拥有有效期的Cookie,在用户首次登录时,浏览器会返给服务器包含某种识别信息的Cookie。当用户二次进入时,便带着这个Cookie发送...

2019-04-04 15:42:58 235

原创 Handler复习笔记--了解源码

Handler作为android入门来讲是相当重要的执行流程其实很简单:首先,当Handler被创建的时候就发送了一个新消息发送至MessageQueue,Looper这个类就开始进行遍历MessageQueue,并从中取出Message,执行Runnable方法。这里面可以看出Looper是一直在进行循环遍历的,也就是死循环,但是...

2019-04-04 09:57:11 220

原创 Spring框架初涉

Spring介绍:Spring Framework为现代基于Java的企业应用程序提供了全面的编程和配置模型 - 在任何类型的部署平台上。Spring的一个关键要素是应用程序级别的基础架构支持:Spring专注于企业应用程序的“管道”,以便团队可以专注于应用程序级业务逻辑,而无需与特定部署环境建立不必要的联系。Spring核心技术:依赖注入,事件,资源,i18n,验证,数据绑定,类...

2019-04-03 15:20:25 241

原创 实现闪屏页--播放短视频Demo

遇到问题:VideoView在模拟器上不显示为全屏,只显示了一半这是显示效果图这是布局设置图问题原因: videoview是继承于surfaceview,它相当于是一个自定义的控件,对于自定义的控件来说,它的测量与绘制才是核心,我们需要对于这两种核心方法进行处理。VideoView中只实现了测量的方法,videoview的测量方法导致了半屏的这种现象,所以vi...

2019-04-03 13:24:04 642

原创 java-复习异常处理

例子如下:如上图的方式写出代码:这段代码已经做了处理,不会崩溃但是可读性太差,修改起来也费劲。刚入手写程序的时候,就被领导批,代码可读性太差业务逻辑如下:异常机制利用的好处:...

2019-04-01 13:57:40 107

原创 java复习-抽象

一、抽象如下图:Shape类表达的是一种概念,一种共同属性的抽象集合,我们并不希望任何Shape类的对象会被创建出来。那么,我们就应该把这个Shape类定义为抽象的。我们用abstract关键字来定义抽象类。抽象类的作用仅仅是表达接口,而不是具体的实现细节。抽象类中可以存在抽象方法。抽象方法也是使用abstract关键字来修饰。抽象的方法是不完全的,它只是一个方...

2019-04-01 13:44:59 110

原创 Java-复习继承与多态,绑定

一、继承对理解继承来说,最重要的事情是,知道哪些东西被继承了,或者说,子类从父类那里得到了什么。答案是:所有的东西,所有的父类的成员,包括变量和方法,都成为了子类的成员,除了构造方法。构造方法是父类所独有的,因为它们的名字就是类的名字,所以父类的构造方法在子类中不存在。除此之外,子类继承得到了父类所有的成员。但是得到不等于可以随便使用。每个成员有不同的访问属性,子类继承得到了父类所有的成员...

2019-04-01 09:16:48 98

原创 双向沟通的Messenger(学习笔记一)

前言1、Messenger的概念和角色ac首先会启动BinderDriver,从线程池中取出线程,然后依次执行Binder()下的函数 ,bt将Msg丢到MQ,然后主线程会把信拿出来处理。2、 Meessenger支持双向沟通 单身传递方式:ac调用Messenger中的IBinder,进而调用 Messen...

2019-03-28 16:25:14 338

原创 同进程Activity调用Serivce中函数(学习笔记四)

Activity与Service间通信的代码不是没写过,但是并没有了解过为啥会这样写,先记录一下。首先得先了解一下AMS,AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似,因此它在Android中非常重要。1、IBinder存在的意义,myActivity和myService是谁来...

2019-03-25 20:05:11 141

原创 程序生成器----先写出aidl工具,后定义接口(学习笔记三)

1、Android在C++层是采用模版(template)方式进行开发即先定义接口,再写aidl工具2、Android在Java层是采用程序生成器的方式进行开发即先写出aidl工具,后定义接口1、在客户来前写好模版BinderProxy(),客户来后写IPlayer(接口)2、略过对编码和解码的了解,变得简单范例一:结构如下:...

2019-03-25 15:33:32 436

原创 如何写Proxy及Stub类(包装IBinder接口)--学习笔记二

3、包装IBinder接口Proxy及Stub设计模式让App与IBinder接口不再产生高度相依性范例一:

2019-03-25 14:26:22 310

原创 AIDL与Proxy--stub设计模式

Aidl与Proxy--stub设计模式(学习笔记一)

2019-03-25 11:27:31 613

原创 学习EIT造型-----笔记

如果以车来做比喻:E:引擎----基类I:接口T:轮胎----子类1、基础项-----基类/了类的extends结构示例左面为示例代码,右面为示例代码的UML图代码结构不同,但是其实逻辑是一样的,不同的形式。图一 ...

2019-03-19 16:01:37 238

原创 对WXin执行回插入代码后的回编译操作

话说在前头,对微信的反编译只是出于不得已为之,我一直觉得任意破坏他人成果不好,所以我不也不敢滥用。出于自己比较小白的技术,我参考了众多同行资料,我没有一一记录和收藏,可惜。一、研究背景这次的反编译没有丝毫想冒犯的意思,只是想做些研究,毕竟在APP端众多应用都对微信进行模仿,我也想了解一下反编译后的那种语言模式。二、研究目的在微信代码中添加activity,强制改变其跳转界面,不...

2019-03-13 14:18:40 596

原创 记录一次fragment中弹出dialog导致button失去焦点问题

原图:    点击生日后,弹出dialog,上面button的状态消失     初步判定是失去焦点,我使用的是AndroidPicker的开源解决办法 是这句:使后面的View可以得到焦点 就可以了window.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,WindowManager.Layout...

2019-02-26 16:45:02 971 2

原创 自定义view实现水波加速效果

  github地址:https://github.com/uvfv1991/TodayNewsSearchTest/tree/master/OrderDistsApp/accelerationball      

2019-01-29 16:23:52 135

原创 Android dependency 'com.android.support:support-compat' has different version for the compile (25.3.

Android dependency 'com.android.support:support-compat' has different version for the compile (25.3.0) and runtime (28.0.0) classpath. You should manually set the same version via DependencyResolution...

2019-01-28 15:25:53 2089

原创 aidl.exe E 12-17 refusing to generate code from aidl file definin

做了一个AIDL项目,报了下面的错误:   解决办法:1、手动导入 aidl文件  2、降低编绎版本,加入SourceSet 配置  3、修改完成后记得Make Project....

2018-12-18 09:10:19 1494

原创 并发和并行的区别

前两天工作的时候领导随口问了一句,你知道并发和并行的有什么区别吗?。。。我诚实的回答,不知道并行是什么意思。回来查一下资料: 并发:并发是指多个进程”同时“对共享资源的访问。并发最重要的一点就是进程间在某相同时间段都对资源进行了访问。举例:Linux并发编程并行:对于单核计算机操作系统中的并行,指的是同时存在于内存中的多道作业都处于运行状态。实际上都是宏观上并行,微观上串行,因...

2018-12-12 13:19:24 218

原创 AGPBI: {"kind":"error","text":"error: resource android:attr/preserveIconSpacing is private.",

导入一个项目,报出如下的错误 : 解决办法:变成

2018-12-12 09:54:21 11542

原创 (学习笔记)什么是synchronized?什么是lock?

Lock 也就意味着是并发编程那么什么是并发编程呢?所谓并发编程是指在一台处理器上"同时"处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。Synchronized:在多线程编程中,线程安全问题是一个最为关键的问题,其核心概念就在于正确性,即当多个线程访问某一共享、可变数据时,始终都不会导致数据破坏以及其他不该出现的结果。而所有的并发模式在解决这个问题时,...

2018-11-26 20:08:02 160

原创 Webrtc初涉(一) 要入坑喽

   前几天领导安排任务以webrtc为基础来实现android端的点对点视频通话,刚开始一脸蒙,虽然最后以官网DEMO实现,但是果然感觉自己还是一阵蒙圈,以此博客来记录一下我的webrtc之行。这是webrtc的官网:https://webrtc.org/首先我的任务目标只是要提供音视频通话的DEMO,所以去官网遍历一圈一、用Google自带的翻译查看它所支持的平台,谷歌浏览器的中文...

2018-09-30 13:14:09 2776

原创 RxJava学习并理解笔记(一)

作为菜鸟来讲,看了好多的rxjava操作符,弄得我怕怕的,就怕自己坚持不住学习,所以,还是一步步来学习它吧,文章主要是记录一下我学习rxjava的过程。重点:rxjava的观察者模式程序中基于用户的操作,数据的改变等因素,UI都会发生相应的变化rxjava是一种异步变化思想举个例子来说   我在A店买了一件商品B   由快递员C送到我的手上 从rxjava的思想上来看 ...

2018-09-06 10:44:46 187

原创 记录Tomcat 中 startup 启动闪屏问题

写过一个Web项目,许久不用,startup启动出了问题,记录一下解决过程。第一步:startup.bat 中最上面编辑添加SET JRE_HOME=D:\Program Files\Java\jdk1.8.0_101\jreSET JAVA_HOME=D:\Program Files\Java\jdk1.8.0_101SET TOMCAT_HOME=D:\apache-tomcat...

2018-09-05 10:00:22 803

PerfectPlayer.rar

[Android]PerfectPlayer.rar 本地视频播放器 架构简单,功能简单 MVVM+kotlin+exoplayer实现 当前实现点: 扫描本地视频并以文件夹(视频列表)形式显示 针对视频功能:单视频循环,目录循环播放,支持截图与变速,支持快进,快退支持全屏与填充两种方式 此Demo主要是业余时间想练习一下kotlin的使用 ​​​ 感谢MVVMLin框架:MVVMLin 本来还想再弄弄,但是时间不够用,先以工作为主吧,在工作中进步 ​

2023-09-19

Android无限循环View+自定义头像VIEW

包括【Android】无限循环View(RecyclerView添加缩放动画+自定义LayoutManager)--仿心遇APP 自定义头像上传VIEW(自定义View)--仿心遇APP 相册上选择图片并上传 需要的可以直接下载

2023-09-19

安卓可供学习的项目

通过MVP+rxjava+retrofit实现的图书阅读类APP,值得作为参考

2018-09-21

MyExpandableSplitLine

可自定义的Expandablelistview

2017-06-06

空空如也

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

TA关注的人

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