Android
KriyWu
走马西来欲到天,辞家见月两回圆
展开
-
《Kotlin入门实战》CH2 | Kotlin 语法基础
写在前面kotlin 为啥用fun声明方法?JetBrains : We use “fun” because we like it - and yes, we do know what the word means in English.JVM语言生态需要注意的式Kotlin是基于JVM的语言,而不是基于Java的语言,他们都可以翻译成Class字节码。kotlin...原创 2019-05-15 21:01:00 · 138 阅读 · 0 评论 -
折腾 | 尝试肉体加载一千张照片
以下内容完全是探索性的尝试,加载大量照片请用Glide或者Picasso背景,我在捣鼓一个图片上传App,我需要上传手机上的照片,首先要把照片显示出来,类似于微信发送朋友圈选取照片的场景。假说我用一个RecyclerView去显示所有的照片(1000张)。在不适用Glide的情况下,如何尽可能好的去加载这些照片。加载一张照片可以直接imageView.setImageBitmap(B...原创 2019-06-18 14:15:06 · 870 阅读 · 0 评论 -
基础 | View基础
1. View位置参数参数含义获取方式(mLeft , mTop) (mRight , mBottom)左上角点和右下角点相对于父容器的坐标getXXX()x,y可视View左上角的位置getX/getYtranslationX,translationY可视View相对于视图本体的偏移量getTranslationX/YmScrollX/Y...原创 2019-06-18 14:11:52 · 165 阅读 · 0 评论 -
进阶 | Handler使用
Handler运行机制Handler的消息机制如下图所示,主要包含两个消息队列,一个是消息的回收队列,另一个是Message Q队列。1 消息的回收队列:消息回收队列是为Handler提供消息对象的,当Handler需要发送消息时,首先从消息回收队列中获取已被清空数据的消息对象,若消息对队列中此时没有消息对象,则创建新的消息对象。当消息对象被使用后,不会直接被当做垃圾回收,而是会进入消息的...原创 2019-06-18 14:10:19 · 176 阅读 · 0 评论 -
基础 | Activity注意点总结
艺术探索第一章看完之后的总结和验证A打开B:onPause(A) -> onCreate(B) -> onStart(B) -> onResume(B) -> onStop(A),onPause方法中不能执行耗时操作,否则影响显示效果。在onRestoreInstanceState中恢复Bundle中数据和onCreate中恢复的区别,onRestoreI...原创 2019-06-18 14:08:04 · 165 阅读 · 0 评论 -
基础 | Service集锦
1. 后台服务后台服务分为可交互服务和不可交互服务。其区别在于启动服务的方式StartService()和bindService()。后者会返回Bind对象供Service中方法和处理结果,而前者不会。1.1 不可交互服务三个方法:onCreate,用于初始化服务,只会被调用一次。onStartService,用于执行任务,每次调用Context.startService(contex...原创 2019-06-18 14:06:58 · 196 阅读 · 0 评论 -
进阶 | Intent Service
如果此时你对Service有些模糊可先简单浏览一下Andriod中各种服务首先看一下Google给的介绍主要的内容就是:IntentService继承Service。异步处理请求,可以自己关闭自己。所有的任务由同一个线程完成。并且是串行执行的。作为服务,所以其优先级比一般的线程要高。IntentService封装了HandleThread和handler。HandleThreadHa...原创 2019-06-18 14:05:09 · 180 阅读 · 0 评论 -
进阶 | AsyncTask 源码浅析
AsyncTask方便我们从异步工作切换到UI线程。虽然是异步的但是依然不建议让AsyncTask执行过大耗时操作(超过10秒),如果需要让一个线程长时间保持运行,请用线程池。AsyncTask有三个泛型四个方法需要注意。简单介绍三个泛型:Params用于初始化,Progress用于设置进度,Result返回的结果,如果没有参数则设置为Void。四个方法:onPreExecute(),...原创 2019-06-18 14:01:44 · 188 阅读 · 0 评论 -
基础 | 属性动画
01 属性动画背景属性动画出现之前,有帧动画和View动画帧动画(FrameAnimation)就是将一个动画分成多个帧。有点类似胶卷电影。View动画最大的缺点就是不具有交互性。监听器和View动画脱离。优点是效率高。为了实现更丰富的动画效果,Google推出了属性动画。02 属性动画涉及的类类描述ObjectAnimator属性动画最重要的类了Ob...原创 2019-06-18 13:58:48 · 122 阅读 · 0 评论 -
基础 | Activity
1. 活动中使用Menu复写 OnCreateOptionsMenu(Menu menu) // 创建菜单 返回值要为TRUE,不然菜单不可见复写 onOptionsItemSelected(MenuItem item) // 设置监听器 通过Item.getId() 来判断点击的菜单2. 显示IntentstartActivity(new Intent(activit, OtherAct...原创 2019-06-18 13:56:22 · 128 阅读 · 0 评论 -
基础 | Broadcast
全局大喇叭-广播广播的作用:广播不允许开启新的线程,所以不能进行耗时操作。一般用来创建状态栏通知或者一个服务。1.按照广播的机制分类:标准广播:异步方式。所有的广播接收器几乎收到消息,不能被截断。类似于UDP的广播功能有序广播:同步方式。链式接受,广播在传播的过程中可以被截断。2. 广播的注册方式动态注册,有叫代码中注册静态注册,在AndroidManifest.xml中注...原创 2019-06-18 13:53:32 · 162 阅读 · 0 评论 -
进阶 | View事件体系
这两天的面试,我发现很多东西我并没有了解其机制,只是停留在表面。1. View位置参数参数 含义 获取方式 (mLeft , mTop) (mRight , mBottom) 左上角点和右下角点相对于父容器的坐标 getXXX() x,y 可视View左上角的位置 getX/getY translationX,translationY ...原创 2019-03-09 11:37:00 · 122 阅读 · 0 评论 -
基础 | 属性动画
01 属性动画背景属性动画出现之前,有帧动画和View动画帧动画(FrameAnimation)就是将一个动画分成多个帧。有点类似胶卷电影。 View动画最大的缺点就是不具有交互性。监听器和View动画脱离。优点是效率高。 为了实现更丰富的动画效果,Google推出了属性动画。02 属性动画涉及的类类 描述 ObjectAnimator 属性动画最重要的类了 ...原创 2018-11-15 21:09:00 · 90 阅读 · 0 评论 -
折腾 | 尝试肉体加载一千张照片(第二次尝试)
愿未来的自己看到这篇文章,庆幸自己的努力。 加油!CoolGlide 是学习Glide的过程中,动手写的一个简单版本。主要是为了进一步了解Glide的设计原理。详细代码:GITHUB 传送门背景我在大三的时候写了一个简单的个人云盘,我想把手机里面的照片上传到云盘上,这之前需要展示手机里面的照片,最简单的做法就是像微信朋友圈发照片那样。但是实际上,整个网格列表特别的卡。卡的原因有两个:一...原创 2019-09-21 13:43:29 · 604 阅读 · 0 评论