
安卓开发
jiye111
这个作者很懒,什么都没留下…
展开
-
安卓开发 自定义ScrollView 实现滚动,停止状态的监听
Scrollview或者NestScrollView没有提供对其状态的监听(类似Recyclerview的OnScrollListener.onScrollSateChanged接口),只能自己实现。在百度以后,发现大多数采用的都是新开一个线程,延迟一小段时间来判断是否已经暂停,都是直接在onTouchEvent()的MotionEvent.ACTION_UP中判断是否已经暂停,没有对Flin...原创 2019-11-30 14:42:16 · 1558 阅读 · 0 评论 -
安卓开发 内部类和匿名内部类所造成的的内存泄漏
内存泄漏定义(个人理解):当一个对象本该被回收,但是因为有对象正在持有他的引用,导致他无法正常被回收,称为内存泄漏。例如一个匿名内部线程需要睡眠了10秒,我们在第5秒钟的时候推出了界面,此时线程还在执行,并且由于匿名内部类持有外部类的引用,所以导致了无法及时回收,造成内存泄露。(使用Leakcanary对上述情况做测试,发现在任务执行完以后就不报内存泄漏了,也就是说在执行完以后被回收了,那部分...原创 2019-11-19 22:23:49 · 1181 阅读 · 0 评论 -
安卓开发 自定义TextView 去除默认内边距
一.搜到的大部分的解决办法1.网上方法的效果在xml文件中对TextView设置: includeFontPadding=false加上以上属性之后,文本的高度明显变小了,但是没有达到我们预想的效果(文字紧贴边框),而是在上下留了一部分距离。具体效果可以查看第二部分中的对比图2.失效的原因在了解这个原因前需要对TextView中文本的绘制有一点了解,具体查看文末参考文...原创 2019-08-16 16:37:32 · 3061 阅读 · 3 评论 -
安卓开发艺术笔记 | 动画解析(View动画,帧动画,属性动画)
一.VIEW动画 view动画的种类 自定义view动画 view动画的特殊类型 二.帧动画三.属性动画属性动画的分类 和View动画的区别 插值器与估值器 属性动画的使用 属性动画的监听器 属性动画工作原理 属性动画的注意事项四.动画注意事项一.View动画1.view动画种类(1)分类注意:view动画不改变V...原创 2019-04-20 12:48:06 · 220 阅读 · 0 评论 -
安卓开发艺术笔记 | View的事件体系(View的分发,滑动冲突的解决)
目录一.View的基本概念1.什么是View2.View的位置参数3.MotionEvent和TouchSlop4.VelocityTracker,GestureDetector二.View的滑动1.View的ScrollTo和ScrollBy2.动画3.LayoutParams三.View的弹性滑动1.Scroller2.动画3.延时策略四...原创 2019-04-12 10:49:07 · 235 阅读 · 0 评论 -
安卓开发艺术笔记 | View的工作原理(绘制流程和自定义View)
目录一.MeasureSpecMeasureSpec基础 MeasureSpec和LayoutParams关系二.View的绘制流程onMeasure() onLayout() onDraw()三.自定义View自定义view分类 自定义view步骤 自定义view的注意事项一.MeasureSpec1.MeasureSpec基础(1)组成:MeasureS...转载 2019-04-11 22:49:20 · 321 阅读 · 0 评论 -
安卓开发艺术笔记 | Activity生命周期与启动模式
目录:生命周期解析正常生命周期 异常情况下生命周期四种启动模式及设置方式 隐式启动Activity时IntentFilter匹配规则 生命周期解析1.正常生命周期(1)onCreate():状态:Activity 正在创建 任务:做初始化工作,如setContentView界面资源、初始化数据 注意:此方法的传参Bundle为该Activity上次被异常情况销...转载 2019-04-08 18:32:52 · 385 阅读 · 0 评论 -
targetSdkVersion,minSdkVersion,compileSdkVersion的介绍
首先介绍一下概念:targetSdkVersion:目标软件开发版本,该值即为app的API的版本API :Application Programming Interface,即应用程序编程接口,提供了很多方法供我们调用,高版本API兼容低版本API。Android 7.0:定义了手机系统的版本,不同版本的系统给用户提供不同的功能,如Android 7.0 多窗口支持等。开发的app要...原创 2018-12-04 16:02:45 · 851 阅读 · 0 评论 -
BUG记录 java.lang.NoSuchMethodError: No static method combineMeasuredStates(II)I in class Landroid/sup
异常:ERROR: java.lang.NoSuchMethodError: No static method combineMeasuredStates(II)I in class Landroid/support/v7/widget/ViewUtils; or its super classes (declaration of 'android.support.v7.widget.View...原创 2018-10-28 19:33:12 · 3297 阅读 · 0 评论 -
安卓开发 Fragment的简单使用与解析
1.Fragment的简介:Fragment是Android3.0以后引入的新的api,为了适配大屏的平板。在普通手机开发的过程中,使用Fragment能实现一个界面的多次使用,能加快效率。Fragment可以被认为是Activity界面的一个布局,其依赖于Activity,但是拥有自己的活动事件与生命周期。可以通过替换Activity中的Fragment实现界面的优化处理。现在And...原创 2018-09-13 10:46:29 · 45048 阅读 · 5 评论 -
自定义View View的绘制流程和自定义View的简单总结
View的绘制流程总的三步:onMeasure,onLayout,onDrawonMeasure(int widthMeasureSpec, int heightMeasureSpec)MeasureSpec的值由specSize和specMode共同组成的,其中specSize记录的是大小,specMode记录的是规格。specMode一共有三种类型,如下所示:1. EXACTL...原创 2018-09-12 11:20:03 · 468 阅读 · 0 评论 -
安卓开发 利用Face++实现人脸融合效果
由于最近有个需求,需要人脸融合,如是上网查了以下,发现Face++用的人挺多的,但是移动端的实现的blog都是直接复制他给的demo,还是挺繁琐的,于是自己看着api就写了一个小例子,希望让后面用的人方便一点。本demo中用的第三方控件有OKHttp,Gson,EasyPermissions而且人脸融合需要的两个api目前是免费的上个效果图步骤1.先去Face++官网注...原创 2018-09-03 08:57:13 · 2534 阅读 · 7 评论 -
自定义Camera实现头像框效果,并裁剪指定区域合成
需要一个带框的相机,并且拍好后能合成框和人脸,不过需要人自己凑过去哈哈哈这两天看了很多博客,然后自己根据自己的要求改了改,基本可以用,调节参数可以获得想要的效果参考链接在最后面,要是看不懂我的,可以去看看他们的,都挺有参考价值的效果图: 前一张为拍照界面,绿色的是拍照按钮。。。第二章为保存的照片,叠加了背景,中间是裁剪出来的,最上面一层是图片,一共三层。实现思路:...原创 2018-08-25 21:39:48 · 1760 阅读 · 0 评论 -
Android中线程的终止
线程对象属于一次性消耗品,一般线程执行完run方法之后,线程就正常结束了,不能再次start,只能新建一个线程对象。所以正常退出run方法,一般就能正常结束线程。在很多情况下,run中都有循环,所以我们只要跳出循环,让run方法执行完,也就正常终止了线程 对于线程的终止,经过查询资料,大部分人提到了三种方法,就先说这三种1.使用标志位来退出2.使用interrupt()方法(注...原创 2018-08-26 20:04:20 · 9405 阅读 · 0 评论 -
横着的Gallery,中间放大,两边有间距
具体github地址:https://github.com/ryanlijianchang/Recyclerview-Gallery 具体使用:1.导包implementation 'com.ryan.rv_gallery:rv-gallery:1.1.2'2.布局文件<com.ryan.rv_gallery.GalleryRecyclerView ...原创 2018-08-13 21:36:45 · 804 阅读 · 0 评论 -
竖着的Gallery,中间放大并压住两边
使用RecyclerView实现画廊效果,中间放大,并且压住两边具体github:https://github.com/Azoft/CarouselLayoutManager使用方法1.添加依赖2.添加布局,使用系统的recyclerview就好(记得导入recyclerview的包)Item3.自定义adapter,一般要用到item点击事件,所以自己提...原创 2018-08-13 21:11:44 · 828 阅读 · 0 评论 -
自定义View LayoutInfalter解析
什么是LayoutInflaterLayoutInflater是一个用于将xml布局文件加载为View或者ViewGroup对象的工具,我们可以称之为布局加载器用法获取LayoutInflater的三种方法1.LayoutInflater inflater = getLayoutInflater(); //调用Activity的getLayoutInflater()2.Layo...原创 2018-07-18 17:36:52 · 317 阅读 · 0 评论 -
安卓开发 四大组件之广播
广播,是一个全局的监听器,属于Android四大组件之一广播的分类:标准广播:一种完全异步执行的广播,再广播发出之后,所有的广播接收器机会都会在同一时刻接收到这条广播消息。因此没有任何先后顺序可言。这种广播的效率会比较高,但是同时也意味着他是无法被截断的。标准广播的工作流程有序广播:一种同步执行的广播,当广播发出后,同一时刻只会有一个广播接收器能收到这条广播,当广播接收器的逻辑执行完后,广播才会继...原创 2018-06-08 15:44:31 · 334 阅读 · 0 评论 -
安卓四大组件之服务及简单Demo
定义:服务是安卓实现后台运行的解决办法,适合执行那些在后台却要求运行的任务。服务的运行不依赖于任何用户界面,只有当程序进程被杀死的时候,所有依赖于该进程的服务也会停止运行。服务不会开启线程,所有的代码都是默认运行在主线程中。也就是说,我们需要在服务的内部手动创建子线程,并在这里执行具体的任务,否则就会出现主线程被阻塞住的情况服务的生命周期总结:startService后为onCreate(第一次)...原创 2018-05-30 20:36:27 · 1262 阅读 · 0 评论