Android之Matrix

原作者: Qiengo
源地址: 点击跳转

Matrix的数学原理

在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类。Android中的Matrix是一个3 x 3的矩阵,其内容如下:
matrix_iamge_description

Matrix的对图像的处理可分为四类基本变换:

  • Translate - 平移变换
  • Rotate - 旋转变换
  • Scale - 缩放变换
  • Skew - 错切变换

从字面上理解,矩阵中的MSCALE用于处理缩放变换,MSKEW用于处理错切变换,MTRANS用于处理平移变换,MPERSP用于处理透视变换。实际中当然不能完全按照字面上的说法去理解Matrix。同时,在Android的文档中,未见到用Matrix进行透视变换的相关说明,所以本文也不讨论这方面的问题。

针对每种变换,Android提供了pre、set和post三种操作方式。其中:

  • set - 用于设置Matrix中的值。
  • pre - 是先乘,因为矩阵的乘法不满足交换律,因此先乘、后乘必须要严格区分。先乘相当于矩阵运算中的右乘。
  • post - 是后乘,因为矩阵的乘法不满足交换律,因此先乘、后乘必须要严格区分。后乘相当于矩阵运算中的左乘。

除平移变换(Translate)外,旋转变换(Rotate)、缩放变换(Scale)和错切变换(Skew)都可以围绕一个中心点来进行,如果不指定,在默认情况下是围绕(0, 0)来进行相应的变换的。

下面我们来看看四种变换的具体情形。由于所有的图形都是有点组成,因此我们只需要考察一个点相关变换即可。

Android Material Design入门

原作者:Ravi Tamada
原文地址:http://www.androidhive.info/…with-material-design/

你可能听说了在Android Lollipop(棒棒糖)版本中有关Material Design的介绍。在Material Design中,介绍了许多新的东西,像Material主题、新的widget、自定义阴影、矢量图片和自定义动画。如果你还没有使用过Material Design,那么这篇文章会给你一个好的开始。

在这个教程中,我们将学习Material Design开发基础的步骤,比如编写自定义主题、使用RecyclerView实现导航抽屉。

通过下面的链接获取更多的关于Material Design的知识:

Material Design Specifications
Creating Apps with Material Design

本文资源链接:

源码下载:点击获取
视频演示地址:Yutube

Android Material Design - Floating Labels for EditText

原文作者:Ravi Tamada
原文地址:http://www.androidhive.info/…aterial-design/

Android浮动标签在android设计支持库有介绍,在EditText上显示一个悬浮的标签。最初它在EditText中作为字段为空时的一个提示。当用户开始输入文本,它通过一个动画的形式,移动到悬浮标签的位置。

这篇文章通过一个简单的表单验证的例子,演示了Floating Lables的用法。

源码下载地址:http://download.androidhive.info/…dfyJJ0xyaJTvXugo0HTV0LBnG9w
视频演示地址:yutube-display

TextInputLayout

在Material Design支持库中一个新的元素,叫作TextInputLayout,用于在EditText上展示悬浮标签。为了显示悬浮标签,EditText被TextInputLayout
所包裹。你也可以给EditText设置一个错误的信息,通过使用setErrorEnabled()setError()方法。

TextInputLayout采用了EditTextandroid:hint属性的值来作为悬浮标签显示。

Android Material Design - Tabs

原作者:Ravi Tamada
原文地址:http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

Android Design支持库 提供了很好的向后兼容性,在Material Design支持库中的组件中,像Navigation Drawer, FloatingAction Button, Snackbar, Tabs, Floating labels , animation frameworks。在这里我们将学习怎样实现tabs。

在进一步深入了解之前,我建议先看一下tabs的文档,它可以告诉你在实现tabs的时候,什么该做什么不该做。

这里还有yutube的视频:到墙外看一看

使用Material

首先我们创建一个新的项目并且应用Material主题,如果你不知道Material Design,那么可以看看文章Material Design入门

1.在Android Studio中,File => New Project并且填好其它信息去创建一个新项目。

2.打开build.gradle然后添加支持库com.android.support:design:23.0.1

build.gradle

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.android.support:design:23.0.1'
}

Android Material Design - Snackbar

原作者:Ravi Tamada
原文地址:http://www.androidhive.info/…example/

Material Design中一个有趣的组件介绍就是**Snackbar。Snackbar就像Toast**消息,只是它提供了动作交互。Snackbar在屏幕底部显示,并且可以滑动关闭。

这篇文章讲述的是关于Snackbar和一些不同场景下的例子。

源码下载

戳我下载

1.简单的Snackbar

下面是一个简单的Snackbar语法。make方法接收三个参数:View、显示的信息、消息显示的持续时间。

通常传递 CoordinatorLayout 作为view参数是最好的选择,因为它允许Snackbar一些特性,像滑动取消、像FloatingActionButton控件的自动移动。

并且显示的持续时间应该是LENGTH_SHORT, LENGTH_LONG或者LENGTH_INDEFINITE。当LENGTH_INDEFINITE被使用时,snackbar显示的时间将是不确定的,而且可以滑动删除。

Snackbar snackbar = Snackbar
        .make(coordinatorLayout, "Welcome to AndroidHive", Snackbar.LENGTH_LONG);

snackbar.show();

example

| | 总字数统计:93.5k