关于 GlideGlide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。
Glide 支持拉取,解码和展示视频快照,图片,和GIF动画。Glide的Api是如此的灵活,开发者甚至可以插入和替换成自己喜爱的任何网络栈。默认情况下,Glide使用的是一个定制化的基于HttpUrlConnection的栈,但同时也提供了与Google Volley和Square OkHttp快速集成的工具库。
虽然Glide 的主要目标是让任何形式的图片列表的滚动尽可能地变得更快、更平滑,但实际上,Glide几乎能满足你对远程图片的拉取/缩放/显示的一切需求。
基本用法多数情况下,使用Glide加载图片非常简单,一行代码足矣:
123Glide.with(fragment) .load(myUrl) .into(imageView);
取消加载同样很简单:
Glide.with(fragment).clear(imageView);
尽管及时取消 ...
名词解释:1234561)前缀 答:前缀——是指符号串任意首部。 2)可归前缀 答:可归前缀——是指规范句型的一个前缀,这种前缀包含句柄且不含句柄之后的任何符号。 3)活前缀 答:活前缀——规范句型的一个前缀,这种前缀不含句柄之后的任何符号。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117或给定文法规范句型的可归前缀的任意首部。 4)简单短语 答:简单短语——设G[Z]是给定文法,w=xuy∈V+,为该文法的句型,如果满足下面两个条件: ① Z xUy; ② Uu; 则称句型xuy 中的子串u是句型xuy的简单短语。 ...
Android
未读RecyclerView 的底层实现原理涉及到一些重要的概念和机制:
ViewHolder 模式:RecyclerView 使用 ViewHolder 模式来缓存列表项的视图对象,以便在滚动列表时能够快速重用视图,减少内存消耗和视图创建的开销。ViewHolder 是一个简单的 Java 对象,持有列表项的视图对象,避免了频繁的 findViewById() 调用,提高了列表的滚动性能。
回收复用机制:RecyclerView 内部维护了一个回收池(Recycler),用于存储已经滚出屏幕的列表项的 ViewHolder 对象。当列表项滚出屏幕时,RecyclerView 将其对应的 ViewHolder 放入回收池中,并在需要显示新的列表项时,从回收池中取出可复用的 ViewHolder 对象,避免了频繁地创建和销毁视图对象。
局部刷新:RecyclerView 提供了局部刷新的机制,可以精确地更新列表中的某个列表项,而不是刷新整个列表。通过调用 notifyItemChanged()、notifyItemInserted()、notifyItemRemoved() 等方法,可以实现 ...
Android面经一、四大组件1、Activity的生命周期
启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。
当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。
当前Activity由被覆盖状态回到前台或解锁屏:系统会调用onResume方法,再次进入运行状态。
当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞状态。
用户后退回到此Activity:系统会先调用onRestart方法,然后调用onStart方法,最后调用onResume方法,再次进入运行状态。
当前Activity处于被覆盖状态或者后台不可见状态,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume方法,进入运行状态。
用户退出当前Activity: ...
Java 面经一、Java 基础1、final 关键字的作用
修饰引用:该引用为常量,其值无法修改
修饰方法:该方法为最终方法,无法被子类重写
修饰类:该类为最终类,无法被继承
2、String、StringBuffer、StringBuilder 的区别
String:值是不可变的,这就导致每次对String的操作都会产生新的String对象,效率低下且浪费内存
StringBuffer:值可变且线程安全
StringBuilder:值可变但线程不安全,速度较StringBuffer更快
3、String为什么要设计成不可变的
防止被篡改,保证信息数据的安全性
不变的对象和值是线程安全的
哈希值的唯一性来提高性能
提高常量池的可用性
4、抽象类和接口的区别
抽象类是半抽象的,有构造方法,只允许出现常量和抽象方法。类和类之间只能单继承,一个抽象类只能继承一个类(单继承),多个功能的集成部分,可用抽象类(抽象类提供简单方法)
接口是完全抽象的,没有构造方法,接口和接口之间支持多继承,一个类可以同时实现多个接口
5、static 关键字的作用
修饰方法:静态方法不依赖于任何对象就 ...
219088d7278b870cf4c68cad190c40547bff7cf83a5efc4c479d2dd291d2a7c200bfc9ca847be55befd2970f9c579e5f44e190fba84027f745d880e1711abe553e2f173dbadb9543f7b0dfc5870e697c71231ee0784bb30ae5b6575589f1e2a31eaa137d4580b466f7bfee727630e2cc201b61d9a92d1ceb1b492b4b26481460a1cbfc50b541698d70426634c62e14a436c323dcf92559b16d42e7abaca7eb7e25b4d237f819135709c04fc3f5f650e63e9e63c1c76c57aceb6bf1601b34fdb1ba89eebde1a55f9d342754fe9bb253db089690b16c0cbb33829446ce96973a26430b7c5e3afa309be7a92d1eb5453b862e88443a59eee0cd5 ...
1. 安卓四大组件
Activity
service
broadcast Receiver
content Provider
2. Activity的生命周期onCreate() => onStart() => onResume() => onPause() => onStop() =>onRestart()=> onDestrory()
按home键返回桌面后再次进入生命周期是什么样的?
启动:onCreat->onStart->onResume
HOME键的执行顺序:onPause->onStop->onRestart->onStart->onResume
下面的不用
BACK键的顺序: onPause->onStop->onDestroy->onCreate->onStart->onResume
生命周期具体场景示例
启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用o ...