Android开发中一些被冷落但却很有用的类和方法
来源:互联网 发布:淘宝购物车图片及价格 编辑:程序博客网 时间:2024/05/28 05:16
来自:http://luckyandyzhang.github.io/
Resources.getIdentifier :
这个我 用过,记得以前做过一个皮肤切换功能,可以通过这个方法从皮肤包 获取皮肤资源。
(皮肤包的资源名称和 主包的资源名称id 名是一样的,因此都是通过名称获取id ,而不是R.id.xxx)
Android:clipToPadding : 经常有这种业务场景。
MediaMetadataRetriever
顾名思义,就是用来获取媒体文件一些相关信息的类。包括一首歌的标题,作者,专辑封面和名称,时长,比特率等等。如果是视频的话,可以获取视频的长宽,预览图。
http://developer.android.com/intl/zh-cn/reference/android/media/MediaMetadataRetriever.html
TouchDelegate
用于更改View的触摸区域。场景:比如在RecyclerView的ItemView里包含了CheckBox组件, 然后想实现点击ItemView的时候,也可以触发CheckBox,就可以使用此类。
http://developer.android.com/intl/zh-cn/training/gestures/viewgroup.html#delegate
ArgbEvaluator
用于计算不同颜色值之间的插值,配合ValueAnimator.ofObject
或者ViewPager.PageTransformer
使用,可以实现不同颜色之间的平滑过渡。
http://developer.android.com/intl/zh-cn/reference/android/animation/ArgbEvaluator.html
Palette
用于提取一张图片的颜色。
http://developer.android.com/intl/zh-cn/reference/android/support/v7/graphics/Palette.html
ViewDragHelper
做过自定义ViewGroup的童鞋都应该知道这个东西吧,用来处理触摸事件的神器,妈妈再也不用担心我自定义控件了。
http://developer.android.com/intl/zh-cn/reference/android/support/v4/widget/ViewDragHelper.html
http://www.cnblogs.com/lqstayreal/p/4500219.html
PageTransformer
用于定义ViewPager页面切换时的动画效果(淡入淡出,放大缩小神马的…)官方有例子,直接看吧。
http://developer.android.com/intl/zh-cn/training/animation/screen-slide.html
ViewFlipper
可以实现简单轮播效果的一个组件。
http://developer.android.com/intl/zh-cn/reference/android/widget/ViewFlipper.html
LocalBroadcastManager
用于在APP内部使用的,效率和安全性更好的广播工具类。
http://developer.android.com/intl/zh-cn/reference/android/support/v4/content/LocalBroadcastManager.html
Messenger
进程间通信的一个工具类。内部也是由AIDL实现的,但是用起来超级方便。
http://developer.android.com/intl/zh-cn/reference/android/os/Messenger.html
http://blog.csdn.net/lmj623565791/article/details/47017485
Formatter.formatFileSize
根据文件大小自动转为以KB, MB, GB为单位的工具类。想想以前都是自己计算的…
http://developer.android.com/intl/zh-cn/reference/android/text/format/Formatter.html
Activity.recreate
重新创建Activity。有什么用呢?可以在程序更换主题后,立马刷新当前Activity,而不会有明显的重启Activity的动画。
http://developer.android.com/intl/zh-cn/reference/android/app/Activity.html#recreate%28%29
View.getContext
顾名思义,就不用解释了吧…以前在写RecyclerView的Adapter的时候,为了使用LayoutInflater,经常傻乎乎地在构造函数中传入一个外部的context….是不是只有我不知道而已(笑cry脸)
http://developer.android.com/intl/zh-cn/reference/android/view/View.html#getContext()
View.post
方便在非UI线程对界面进行修改,与Handler的作用类似。并且由于post的Runnable会保证在该View绘制完成的前提下才调用,所以一般也可以用于获取View的宽高。
http://developer.android.com/intl/zh-cn/reference/android/view/View.html#post(java.lang.Runnable)
Activity.runOnUiThread
与View.post
类似,方便在非UI线程中对界面进行修改。
http://developer.android.com/intl/zh-cn/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable)
Fragment.setUserVisibleHint
Fragment可以重写此方法,然后根据参数的布尔值(true的话表示当前Fragment对用户可见),来执行一些逻辑。
http://developer.android.com/intl/zh-cn/reference/android/support/v4/app/Fragment.html#setUserVisibleHint(boolean)
android:animateLayoutChanges
这是一个非常酷炫的属性。在父布局加上 android:animateLayoutChanges="true"
后,如果触发了layout方法(比如它的子View设置为GONE),系统就会自动帮你加上布局改变时的动画特效!!
http://developer.android.com/intl/zh-cn/training/animation/layout.html
android:clipToPadding
设置父view是否允许其子view在它的padding(这里指的是父View的padding)中绘制。是不是有点绕?举个实际场景吧:假如有个ListView,我们想要在初始位置时,第一项Item离顶部有10dp的距离,就可以在ListView的布局中加入android:clipToPadding="false"
android:paddingTop="10dp"
即可。是不是很方便呢?
http://developer.android.com/intl/zh-cn/reference/android/view/ViewGroup.html#attr_android:clipToPadding
DrawableCompat.setTint
位于support-v4包中,可以轻易地实现给Drawable着色。轻松实现类似网易云音乐自定义主题时,icon也会变色的效果。
http://developer.android.com/intl/zh-cn/reference/android/support/v4/graphics/drawable/DrawableCompat.html#setTint(android.graphics.drawable.Drawable,%20int)
http://www.race604.com/tint-drawable/
ItemTouchHelper
用来实现RecyclerView滑动删除,拖动排序等效果的工具类,重要的是,实现起来超级简单啊!可以不用引入开源库啦~
http://developer.android.com/intl/zh-cn/reference/android/support/v7/widget/helper/ItemTouchHelper.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0630/3123.html
SortedList
排序列表,support-v7引入的一个新的数据结构。配合RecyclerView使用,可以轻松地对Adapter的数据进行排序,并且在数据变化时(添加,删除,移动,改变)提供相应的动画效果。
http://developer.android.com/intl/zh-cn/reference/android/support/v7/util/SortedList.html?utm_campaign=ASL221-415&utm_source=dac&utm_medium=blog
DialogFragment
与直接使用Dialog不同的是,DialogFragment能够帮你管理Dialog的生命周期,在横竖屏切换的时候,会保存相应状态并恢复。以后就不要直接用Dialog了,使用DialogFragment可以帮你省很多事。
http://developer.android.com/intl/zh-cn/reference/android/support/v4/app/DialogFragment.html
http://blog.csdn.net/lmj623565791/article/details/37815413
Resources.getIdentifier
可以通过资源名称来获取资源的id。乍一看好像没什么卵用… 举个例子吧: 假设服务端的API规定了一系列的错误码,当客户端收到错误码时,需要转化为对用户友好的提示语。那么我们可以在strings.xml
中先定义好一系列的错误提示,然后在代码中根据相应的资源名称来获取到相应的错误提示。
http://developer.android.com/intl/zh-cn/reference/android/content/res/Resources.html#getIdentifier(java.lang.String,%20java.lang.String,%20java.lang.String)
DateUtils
一个用来格式化日期的超级方便的工具类,快点试试吧~
http://developer.android.com/intl/zh-cn/reference/android/text/format/DateUtils.html
TextUtils
一个字符串处理的工具类。比如空判断TextUtils.isEmpty
(内部已经做了!null处理), 文本拼接TextUtils.concat
, 统计字符串除去空格的长度TextUtils.getTrimmedLength
(trim之后的长度)
http://developer.android.com/intl/zh-cn/reference/android/text/TextUtils.html
android:enterFadeDuration/android:exitFadeDuration
觉得Button的selector效果很生硬?试试在selector
节点加上这两个属性吧,马上就优雅很多了~
http://developer.android.com/intl/zh-cn/reference/android/R.attr.html#enterFadeDuration
?android:selectableItemBackground
想要最快速度地给view加上点击效果?试试在xml中加上 android:background="?android:selectableItemBackground"
Android 5.0以上是波纹效果,5.0以下是普通的点击效果(简言之,跟系统默认点击效果一致)
http://developer.android.com/intl/zh-cn/reference/android/R.attr.html#selectableItemBackground
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android开发中一些被冷落但却很有用的类和方法
- Android 开发中一些你不知道但很有用的类和方法
- Android 开发中一些很有用但你不知道的方法
- Android 开发中一些很有用但你不知道的方法
- Android 开发中一些很有用但你不知道的方法(一)
- 145. Binary Tree Postorder Traversal
- TensorFlow基本概念
- andorid状态机StateMachine
- BufferReader类举一反三
- 岭回归中GCV,HKB,L-W的解释
- Android开发中一些被冷落但却很有用的类和方法
- 面试题13.在O(1)时间删除链表节点
- leetcode 68. Text Justification 文本对齐
- 基于卷积的密度统计(一)密度图的生成
- [Azure]ARM中使用Azure Powershell批量规划虚拟网络
- 重学java——第一课
- wordpress主题制作学习记录
- 消息中间件核心实体(1)
- Spring核心框架