Android
文章平均质量分 69
Hello,Fenger
fenger是个渣渣程序员
展开
-
属性动画源码分析
* 本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布关于属性动画的介绍有很多,但是大部分都是介绍如何使用属性动画。本文通过追溯源码,剖析属性动画内部实现机制。属性动画有两个比较重要的动画执行类ObjectAnimatorValueAnimator其中 ObjectAnimator 是 ValueAnimator 的子类。ObjectAni...转载 2020-04-16 16:48:25 · 219 阅读 · 0 评论 -
Android ViewPager使用及爬坑
今天在学习一个常用的ViewPager控件,遇到了一些小坑,在这里记录下来。根本原因在于ViewPager的缓存机制。因为缓存,出现了一个状况:左滑时会闪退并且报错java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the chil...原创 2020-01-06 17:44:06 · 1322 阅读 · 0 评论 -
Android常考问题(10)- Android启动模式
启动模式四种:标准的standard,栈顶复用singleTop,栈内复用singleTask,单例模式singleInstance。这次刚好项目中用到了,先说一下具体情况。我这边需要做个页面跳转,很简单的intent,但是从Activity A到Activity B之后,按下返回键,会回到A,这是正常的standard模式的启动,,但是如果我按下了一个自定义按钮,然后用intent跳回A,这...原创 2019-11-13 15:44:31 · 178 阅读 · 0 评论 -
Android常考问题(5)-ListView及其复用
ListView虽然已经几乎被RecycleView取代,但是其复用的核心思想还是很棒的,而且也经常在入门级面试中被提问。在看RecycleView的时候云里雾里的,就先理清ListView。这次的起因是因为RecycleView复用出现的严重bug。其实很久之前就捣鼓过一次ListView的复用问题,现在回过头看看真的是不可思议,我当时是怎么捣鼓出的多层嵌套的ListView的同时还解决了复用引...原创 2019-08-28 19:33:24 · 318 阅读 · 0 评论 -
Android常考问题(6)-RecyclerView及其复用-源码分析
前一篇的ListView只是之前的学习的回顾和复习,RecyclerView才是目前学习的主要内容。这部分内容也比较多,因此详细分两部分来总结一下。而且对比之前的ListView,应该能更好理解RecyclerView的内容。首先认识一下RecyclerView。这个东西有点杂乱。我们知道ListView可以用来显示很多的重复数据,按照item排列就行了。而RecyclerView综合了Lis...原创 2019-08-31 16:01:10 · 507 阅读 · 0 评论 -
RecyclerView及其复用-问题解决
现在开始解决问题。首先按照之前解释的逻辑,能够分辨出使用RecyclerView的时候出现显示错乱是因为复用问题。这里刚好对于问题进行解决。(这是在电视端开发,会有焦点的获取问题)首先描述下问题。问题其实很简单,就是一个View的List里面每个item都有一个按钮控件,这个按钮可以显示开启或者关闭,这里首先产品的需求不明确,只给了几个设计图。按钮大概长这样,就是遥控按一个按键删除按钮...原创 2019-09-02 14:24:48 · 3064 阅读 · 0 评论 -
Android常考问题(7)-动画详细介绍
这次学习的是动画,但是不得不说,看完这篇文章我没有重新写的打算。不是因为太长,而是因为太详细。感觉自己无话可说了。因此这篇文章作为转载,很感谢作者。动画种类Android 动画可以归纳为以下几种:(点击链接跳转到github查看源码)视图动画(View 动画) 帧动画(Frame 动画、Drawable 动画) 属性动画 触摸反馈动画(Ripple Effect) 揭...转载 2019-09-03 15:21:27 · 212 阅读 · 0 评论 -
Android常考问题(8)-设计模式:Builder模式(顺带学习了一下String的比较和final)
今天的主要目的是学习设计模式中的Builder模式。由于java基础不牢固,在学习过程中要回过头去学习java内容,因此凑成了这样一篇驳杂的文章。Builder模式首先是Builder设计模式的作用:将复杂对象的构建和表示分离,使得不同构建过程创建不同的表示对象。(概念啥的我就看看)实现过程比较简单,只要把对象类,builder抽象接口,ConcreteBuilder(接口的实现),和...原创 2019-09-18 19:11:32 · 221 阅读 · 0 评论 -
Android常考问题(9)- Activity生命周期
面试android几乎必被问到的问题,Android的生命周期。先把最基础的路径死记下来:onCreate、onRestart 、onStart、onResume、onPause、onStop、onDestroy一个activity的生命过程就这么长。写安卓的第一行hello world就是在onCreate方法里面写的,从创建(create),到启动(start),到展示(resume)...原创 2019-09-27 19:57:21 · 163 阅读 · 0 评论 -
Android常考问题(4)-序列化和反序列化
网络上大部分对于序列化的解释都是大同小异的官方解释。我的理解是:比如数据传输的时候,传输过程都是字节流数据,在你的代码的里是对象格式,而在传输的时候要变成字节流数据。因此发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。序列化存储也是类似的,硬盘等上面保存的也是字节流,也需要序列化之后存入硬盘。 序列化主要有两种方法:S...原创 2019-08-26 17:49:19 · 162 阅读 · 0 评论 -
Android常考问题(1) - 触摸事件
Android的触摸事件分成了三个步骤:从按下去(ACTION_DOWN)到移动(ACTION_MOVE)最后离开屏幕(ACTION_UP),这三个就是三种触摸事件,属于一个名叫MotionEvent的类。Android的触摸机制也有三个阶段,我们用一整个触摸事件的发生过程来说明一下。发生触摸事件后,一般由Activity发起dispatchTouchEvent这个方法,这个方法过程叫分发...原创 2019-08-16 18:04:44 · 225 阅读 · 0 评论 -
screenOrientation属性
问题1:android:screenOrientation属性:用于控制activity启动时方向unspecified,默认值,由系统决定,不同手机可能不一致landscape,强制横屏显示portrait,强制竖屏显behind,与前一个activity方向相同sensor,根据物理传感器方向转动,用户90度、180度、270度旋转手机方向,activity都更着变化sensorLandsca...原创 2018-07-04 10:48:46 · 411 阅读 · 0 评论 -
StartActivityForResult和Adapter写法
实现一个目标:地图图层切换。首先图层切换代码通过高德api已知: aMap.setMapType(AMap.MAP_TYPE_SATELLITE);//卫星地图 aMap.setMapType(AMap.MAP_TYPE_NORMAL);//标准地图想法:通过点击进入下一个activity然后返回参数跳转。因此用到了StartActivityForResult...原创 2018-07-06 17:15:27 · 607 阅读 · 0 评论 -
UnsatisfiedLinkError和Device support
开发安卓有一段时间了,有了一点点基础,但是总是忘掉解决过的问题,所以开了个博客,把自己遇到的问题记录下来,把解决方法记录下来。这两天碰到的是一个新的问题,因为暑假期间刚拿到新的项目,于是把项目拉到自己电脑里开始调试运行。一开始都很正常,台式电脑成功运行。可是换到笔记本上就出现了问题。经过一段调试后我的两部手机,小米6(安卓8.0)能够正常运行软件,而三星(安卓5.1)就不能...原创 2018-07-03 15:45:07 · 187 阅读 · 0 评论 -
关于Butterknife 的一些使用
今天学习了一下黄油刀的相关,出现了几个问题在这里记录一下。1.在我按照github上的配置来导入相关包的时候出现了以下的报错信息添加依赖过程:在项目的project 的build.gredle 文件中的dependencies标签下添加。classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.1' //Butterk...原创 2019-05-24 11:30:16 · 202 阅读 · 0 评论 -
深入浅出Java GC自动回收机制--转载
GC :Garbage Collections 字面意思是垃圾回收器,释放垃圾占用的空间。让创建的对象不需要像c、c++那样delete、free掉 。对于c、c++的开发人员来说内存是开发人员分配的,也就是说还要对内存进行维护和释放。对于Java程序员来说,一个对象的内存分配是在虚拟机的自动内存分配机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄...转载 2019-07-24 17:02:15 · 143 阅读 · 0 评论 -
BrightScript
目前看来较为主流的安卓开发环境还是Java,但是由于谷歌的大力推进,目前kotlin的上升趋势越来越强烈,因此安卓开发者目前的前景很不明朗,究竟kotlin什么时候会完全代替Java呢?该不该立刻转型呢?这都是个问题。因此我今天来说一下BrightScript。扯远了。由于工作需要,公司分配brightscript的工作开发。在我看来这是个我连名字都没听过的,听介绍还是很久远的语言。我也不知道...原创 2019-07-22 16:49:50 · 248 阅读 · 0 评论 -
Android常考问题(3)-view的绘制
Android中常会自定义一个控件,这里详细说一下view的绘制流程。(主要是敲一遍源码加强记忆)首先view主要有两种:view和viewGroup(详细介绍不再赘述),从新建一个activity开始,我们会用setContentView展开一个内容视图,这就是一个viewGroup,也是用户所看到的界面。首先每个activity都会创建出一个PhoneWindow窗口,这是内容的最基本窗口...原创 2019-08-23 19:28:14 · 113 阅读 · 0 评论 -
Android常考问题(2)-SharedPreferences
首先说一下,Android五种存储文件方式:1.文件存储。用保存到文件中的方式进行存储,openFileInput()和openFileOutput()方法来读取设备上的文件。2.SQLite存储。通过数据库存储数据,常用的工具GreenDao,这个以后再看吧。3.ContentProvider存储数据,这一块主要用于数据共享。4.网络存储。5.SharedPreferences存...原创 2019-08-21 16:15:09 · 653 阅读 · 0 评论 -
悬浮框的要点(顺便LinearLayout的透明度设置)
LinearLayout设置透明度:点击打开链接悬浮框:https://www.jianshu.com/p/881403db1314透明度设置主要是#50ffffff 50代表50%的透明度。悬浮框最主要的有三个点。1.floatManager:自己创建的悬浮窗管理类。里面一般包含方法:addview,removeview,updateview。/** * 悬浮窗管理类 */public ...原创 2018-07-09 11:53:02 · 2351 阅读 · 0 评论