常用功能

作者: lipyhui | 来源:发表于2018-11-28 17:41 被阅读0次

一、说明

      笔记主要是《Android开发艺术探索》的阅读笔记和自己的理解,笔记中部分内容引自《Android开发艺术探索》。

      因此需要着重感谢任玉刚先生和他所著的《Android开发艺术探索》;然后感谢任玉刚先生授权我使用小部分《Android开发艺术探索》原文。

      推荐Android开发者购买正版《 Android开发艺术探索》,该书是初级Android开发者进阶的必备良品!

    由于本人水平有限,其中出现的错误或者不合理的地方望各位读者多多包含,并指出其中不合理和错误的地方,以便我来修正。谢谢!

二、笔记时间

    2018年10月12日

三、简述

    本文主要记录《Android开发艺术探索》中第5、6、7、8、9、10、11、12、14章中的重要知识点,其中包含Drawable、
WindowManager、Bitmap、缓存等一些重要知识细节。

    文中加入了一些个人理解,可能有一些说明不合理或者错误之处,望各位读者指出错误的地方,以便我来修改错误,避免误导读者。谢谢!

四、详情

1、RemoteViews

     RemoteViews表示的是一个View结构,它可以在其他进程中显示,由于它在其他进程中显示,为了能够更新它的界面,RemoteViews提供了一组基础的操作用于跨进程更新它的界面。RemoteViews通常用于通知栏和桌面小部件两种场景。

2、Drawable

1)BitmapDrawable:BitmapDrawable表示的就是一张图片。在实际开发中,可以直接用原始的图片,但是也可以通过XML的方式来描述它,通过XML来描述的BitmapDrawable可以设置更多的效果。

2)ShapeDrawable:ShapeDrawable可以理解为通过颜色来构造的图形,它既可以是纯色的图形也可以是具有渐变效果的图形。

3)LayerDrawable:LayerDrawable表示一种层次化的Drawable集合,对应的XML标签是<layer-list>。

4)StateListDrawable:StateListDrawable也表示Drawable集合,对应的XML标签是<selector>。

5)LevelListDrawable:LevelListDrawable也表示Drawable集合,对应的XML标签是<level-lsist>。

6)TransitionDrawable:TransitionDrawable用于实现两个Drawable之间的淡入淡出效果,对应的XML标签是<transition>。

7)InsetDrawable:InsetDrawable可以将其他Drawable内嵌到自己当中,并可以在四周留出一定的距离,对应的XML标签是<inset>。

8)ScaleDrawable:ScaleDrawable根据自己的等级(level)将指定的Drawable缩放到一定比例,对应的XML标签是<scale>。

9)ClipDrawable:ClipDrawable根据自己当前的等级(level)来裁剪另一个Drawable,裁剪方向通过android:clipOrientation和android:gravity这两个属性来共同控制,对应的XML标签是<clip>。

10)自定义Drawable:通过重写Drawable的draw方法来自定义Drawable。通常没必要自定义Drawable,因为自定义Drawable不能在XML中使用。

3、Android动画

1)View动画:View动画的作用对象是View,它支持4种动画效果,分别是平移动画、缩放动画、旋转动画、透明度动画。其实帧动画也是属于View动画的一种。

2)属性动画:属性动画是API11新加入的特性,和View动画不同,它对作用对象进行来扩展,属性动画可以对任何对象做动画,甚至还可以没有对象。除了作用对象进行来扩展以为外,属性动画的效果也得到了加强,不再像View动画那样只支持四种简单动画。属性动画中有ValueAnimator、ObjectAnimator和AnimatorSet等,通过他们可以实现绚丽的动画。

注:

1)OOM:这个问题主要出现在帧动画中,当图片数量较多且图片较大时就容易出现OOM,因此应尽量避免使用帧动画。

2)内存泄露:当动画是一个无限循环的动画时,需要在Activity退出时及时停止(View动画不存在这个问题)。

3)兼容性问题:动画在3.0以下的系统上存在兼容性问题,在某些特殊场景下可能无法正常工作。

4)View动画问题:View动画是对View的影像做动画,并不是真正地改变View的状态,因此有时候会出现动画完成后View无法隐藏的现象,即setVisibility(View.GONE)失效了,这时候只要调用view.clearAnimatiln()清除View动画即可。

5)不要使用px:尽量使用dp,使用px会导致在不同设备上有不同的效果。

6)动画元素的交互:在Android 3.0以前的系统,View移动后,新位置上不能触发点击事件,而旧位置上仍然可以触发点击事件。Android 3.0以后,属性动画的单击事件触发位置为移动后的位置,但是View动画仍然在原位置。

7)硬件加速:建议开启硬件加速,这样可以提高动画的流畅性。

4、Android中的缓存

1)LruCache:LurCache是Android 3.1提供的一个缓存类,通过support-v4兼容包可以兼容到早期的Android版本。建议使用support-v4兼容包中提供的LruCache,而不要直接用Android 3.1提供的LruCache。

2)DiskLruCache:用于实现存储设备缓存(磁盘缓存),它通过把缓存对象写入文件系统而实现缓存的效果。

3)ImageLoader:ImageLoader是具备图片处理、缓存的工具。它具备以下功能:1、图片的同步加载;2、图片的异步加载;3、图片压缩;4、内存缓存;5、磁盘缓存;6、网络拉取。

相关文章

  • 玩转简书markdown编辑器的9种常用代码

    常用功能1:标题 一级标题 三级标题 常用功能2:斜体或加粗 斜体加粗 常用功能3:图片及图注 常用功能4:引用 ...

  • day6 阿来

    安装并载入包,dplyr包常用功能介绍 安装和载入包 dplyr包常用功能介绍 总结 要多熟悉常用的R包功能

  • UI基础3 常用控件

    常用控件 UIImageViewUIImageView及其常用,功能比较专一:显示图片 UILabel功能比较专一...

  • 分享来源/header高度

    小功能(不常用) 使用

  • 常用小功能

    打电话 都会弹框提示用户 第一种方式 第二种方式注意:属于私有api,可能会被拒 第三种方式必须要添加到视图上,不...

  • 常用功能

    一、说明 笔记主要是《Android开发艺术探索》的阅读笔记和自己的理解,笔记中部分内容引自《Android...

  • 常用 PS 功能

    去水印在 PS 中打开需要操作的图片,用矩形选框工具选择需要清除的地方,再按shift + F5 即可,最后保存。...

  • 常用Emmet功能

    view.aaa>view.bbb 就可以变成下面这样 view.aaa+view.bbb 变成下面这样 vie...

  • HttpSimpleUtils

    功能: 基于HttpURLConnection 实现的常用 Http 常用方法: post get put del...

  • 开发相关工具简介

    1.Charles的常用功能简介: 常用功能:1.监控网络请求2.修改接口返回Tools -> Rewrite 3...

网友评论

    本文标题:常用功能

    本文链接:https://www.haomeiwen.com/subject/kacgaftx.html