2018-2019-2 20189205《移动平台应用开发实践》第九周做业

Android 学习

定制视图

Android界面在自定义控件时,常常须要使用canvas、paint等类,在canvas类中,绘画基本都是靠drawXXX()方法来完成的,在这些方法中,不少时候都须要用到paint类型的参数,本文先对paint类经常使用的一些设置作个简单总结
Canvas类就是表示一块画布,你能够在上面画你想画的东西。固然,你还能够设置画布的属性,如画布的颜色/尺寸等。
Canvas提供了以下一些方法:android

  • Canvas():建立一个空的画布,可使用setBitmap()方法来设置绘制的具体画布;
  • Canvas(Bitmap bitmap):以bitmap对象建立一个画布,则将内容都绘制在bitmap上,bitmap不得为null;
  • Canvas(GL gl):在绘制3D效果时使用,与OpenGL有关;
  • drawColor:设置画布的背景色;
  • setBitmap:设置具体的画布;
  • clipRect:设置显示区域,即设置裁剪区;
  • isOpaque:检测是否支持透明;
  • rotate:旋转画布;

Color类定义了多个颜色代码字段,以及用于建立和转换颜色int的方法。canvas

而Paint类表明了Canvas上的画笔、画刷、颜料等等,其经常使用方法有:模块化

图形绘制相关:布局

  • set(Paint src) 根据已有画笔的属性进行赋值
  • setColor(int color) 设置颜色
  • setAlpha(int alpha) 设置透明度,alpha为透明度,取值范围为0~255,数值越小越透明
  • setARGB(int a, int r, int g, int b) 设置透明度和颜色,a表明透明度,r,g,b表明颜色值
  • setAntiAlias(boolean aa) 设置是否使用抗锯齿功能,比较耗资源,减慢绘制速度
  • setDither(boolean dither) 设定是否使用图像抖动,如true,绘制出来的图片颜色更饱满、清晰
  • setStyle(android.graphics._Original_Paint.Style style) 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE

文字绘制相关:学习

  • setTextSize(float textSize) 设置文字大小
  • setTextScaleX(float scaleX) 设置文字x轴的缩放比例,能够实现文字的拉伸效果
  • setTextSkewX(float skewX) 设置文字倾斜弧度
  • setUnderlineText(boolean flag) 设置文字下划线效果
  • setStrikeThruText(boolean flag) 设置删除线效果
  • setTypeface(Typeface typeface) 设置字体风格
  • setTextAlign(android.graphics._Original_Paint.Align align) 设置文字的对齐方向

片断

Android 在 Android 3.0(API 级别 11)中引入了片断,主要是为了给大屏幕(如平板电脑)上更加动态和灵活的 UI 设计提供支持。因为平板电脑的屏幕比手机屏幕大得多,所以可用于组合和交换 UI 组件的空间更大。利用片断实现此类设计时,无需管理对视图层次结构的复杂更改。 经过将 Activity 布局分红片断,能够在运行时修改 Activity 的外观,并在由 Activity 管理的返回栈中保留这些更改。
Fragment 表示 Activity 中的行为或用户界面部分。咱们能够将多个片断组合在一个 Activity 中来构建多窗格 UI,以及在多个 Activity 中重复使用某个片断。能够将片断视为 Activity 的模块化组成部分,它具备本身的生命周期,能接收本身的输入事件,而且在 Activity 运行时添加或移除片断(有点像在不一样 Activity 中重复使用的“子 Activity”)。
片断必须始终嵌入在 Activity 中,其生命周期直接受宿主 Activity 生命周期的影响。 例如,当 Activity 暂停时,其中的全部片断也会暂停;当 Activity 被销毁时,全部片断也会被销毁。 不过,当 Activity 正在运行(处于已恢复生命周期状态)时,咱们能够独立操纵每一个片断,如添加或移除它们。 当执行此类片断事务时,咱们也能够将其添加到由 Activity 管理的返回栈 — Activity 中的每一个返回栈条目都是一条已发生片断事务的记录。 返回栈让用户能够经过按返回按钮撤消片断事务(后退)。字体

要想建立片断,咱们必须建立 Fragment 的子类(或已有其子类)。Fragment 类的代码与 Activity 很是类似。它包含与 Activity 相似的回调方法,如 onCreate()、onStart()、onPause() 和 onStop()。实际上,若是要将现有 Android 应用转换为使用片断,可能只需将代码从 Activity 的回调方法移入片断相应的回调方法中。动画

一般,咱们至少应实现如下生命周期方法:设计

  • onCreate() 系统会在建立片断时调用此方法。您应该在实现内初始化您想在片断暂停或中止后恢复时保留的必需片断组件。
  • onCreateView() 系统会在片断首次绘制其用户界面时调用此方法。 要想为您的片断绘制 UI,您今后方法中返回的 View 必须是片断布局的根视图。若是片断未提供 UI,您能够返回 null。
  • onPause() 系统将此方法做为用户离开片断的第一个信号(但并不老是意味着此片断会被销毁)进行调用。 您一般应该在此方法内确认在当前用户会话结束后仍然有效的任何更改(由于用户可能不会返回)。
    大多数应用都应该至少为每一个片断实现这三个方法,但您还应该使用几种其余回调方法来处理片断生命周期的各个阶段。 处理片断生命周期部分对全部生命周期回调方法作了更详尽的阐述。

此外还有如下几个扩展子类:对象

  • DialogFragment 显示浮动对话框。使用此类建立对话框可有效地替代使用 Activity 类中的对话框帮助程序方法,由于您能够将片断对话框归入由 Activity 管理的片断返回栈,从而使用户可以返回清除的片断。
  • ListFragment 显示由适配器(如 SimpleCursorAdapter)管理的一系列项目,相似于 ListActivity。它提供了几种管理列表视图的方法,如用于处理点击事件的 onListItemClick() 回调。
  • PreferenceFragment 以列表形式显示 Preference 对象的层次结构,相似于 PreferenceActivity。这在为您的应用建立“设置” Activity 时颇有用处。

动画

属性动画(Property Animation)是在 Android 3.0(API 11)后才提供的一种全新动画模式。其经过,在必定时间间隔内,不断对值进行改变,并不断将该值赋给对象的属性,从而实现该对象在该属性上的动画效果。生命周期

ValueAnimator类

这属性动画机制中 最核心的一个类,其经过不断控制 值 的变化,再不断 手动 赋给对象的属性,从而实现动画效果。

ValueAnimator类中有3个重要方法:

  • ValueAnimator.ofInt(int values)将初始值以整型数值的形式过渡到结束值;
  • ValueAnimator.ofFloat(float values)将初始值以浮点型数值的形式过渡到结束值;
  • ValueAnimator.ofObject(int values)将初始值以对象的形式过渡到结束值;

ObjectAnimator类

该类直接对对象的属性值进行改变操做,从而实现动画效果,如直接改变 View的 alpha 属性 从而实现透明度的动画效果,其本质原理是经过不断控制值的变化,再不断自动赋给对象的属性,从而实现动画效果。

ObjectAnimator与 ValueAnimator类的区别:

  • ValueAnimator 类是先改变值,而后手动赋值给对象的属性从而实现动画;是间接对对象属性进行操做;
  • ObjectAnimator 类是先改变值,而后自动赋值给对象的属性从而实现动画;是直接对对象属性进行操做;
相关文章
相关标签/搜索