欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android 矩陣ColorMatrix

 更新時間:2016年10月17日 11:11:28   投稿:lqh  
這篇文章主要介紹了Android 矩陣ColorMatrix的相關資料,需要的朋友可以參考下

中文名:坐標矩陣

高等數學里有介紹,在圖像處理方面,主要是用于平面的縮放、平移、旋轉等操作。

在Android里面,Matrix由9個float值構成,是一個3*3的矩陣。最好記住。如下圖

各個字段的含義:

上面的sinX和cosX,表示旋轉角度的cos值和sin值,注意,旋轉角度是按順時針方向計算的。

translateX和translateY表示x和y的平移量。scale是縮放的比例,1是不變,2是表示縮放1/2,這樣子。

如何使用

set,pre,post方法

Matrix調用一系列set,pre,post方法時,可視為將這些方法插入到一個隊列.當然,按照隊列中從頭至尾的順序調用執(zhí)行.
其中

pre表示在隊頭插入一個方法,

post表示在隊尾插入一個方法.

而set表示把當前隊列清空,并且總是位于隊列的最中間位置.

當執(zhí)行了一次set后:pre方法總是插入到set前部的隊列的最前面,post方法總是插入到set后部的隊列的最后面

例一:

Matrix m = new Matrix();
m.setRotate(45); 
m.setTranslate(80, 80);

只有m.setTranslate(80, 80)有效,因為m.setRotate(45);被清除.

例子二:

Matrix m = new Matrix();
m.setTranslate(80, 80);
m.postRotate(45);

先執(zhí)行m.setTranslate(80, 80);后執(zhí)行m.postRotate(45);

例子三:

Matrix m = new Matrix();
m.setTranslate(80, 80);
m.preRotate(45);

先執(zhí)行m.setTranslate(80, 80);后執(zhí)行m.preRotate(45);

例子四:

Matrix m = new Matrix();
m.preScale(2f,2f);  
m.preTranslate(50f, 20f);  
m.postScale(0.2f, 0.5f);  
m.postTranslate(20f, 20f); 

執(zhí)行順序:m.preTranslate(50f, 20f)-->m.preScale(2f,2f)-->m.postScale(0.2f, 0.5f)-->m.postTranslate(20f, 20f)
注意:m.preTranslate(50f, 20f)比m.preScale(2f,2f)先執(zhí)行,因為它查到了隊列的最前端.

例子五:

Matrix m = new Matrix();
m.postTranslate(20, 20);  
m.preScale(0.2f, 0.5f);
m.setScale(0.8f, 0.8f);  
m.postScale(3f, 3f);
m.preTranslate(0.5f, 0.5f);

執(zhí)行順序:m.preTranslate(0.5f, 0.5f)-->m.setScale(0.8f, 0.8f)-->m.postScale(3f, 3f)
注意:m.setScale(0.8f, 0.8f)清除了前面的m.postTranslate(20, 20)和m.preScale(0.2f, 0.5f);  

其它一些具體的方法舉例:

1、setTranslate(float ds,float dy):控制Matrix進行平移。
2、setSkew(float kx,float ky,float px,float py):控制Matrix以px、py為軸心進行傾斜。kx、ky為X、Y方向上的傾斜距離。
3、setSkew(float kx,float ky):控制Matrix進行傾斜。kx、ky為X、Y方向上的傾斜距離。
4、setRotate(float degrees):控制Matrix進行旋轉,degrees控制旋轉的角度。
5、setRotate(float degrees,float px,float py):設置以px、py為軸心進行旋轉,degrees控制旋轉的角度。
6、setScale(float sx,float sy):設置Matrix進行縮放,sx、sy控制X、Y方向上的縮放比例。
7、setScale(float sx,float sy,float px,float py):設置Matrix以px、py為軸心進行縮放,sx、sy控制X、Y方向上的縮放比例。

寫在最后:

這里對圖片進行移動,旋轉之類的處理,除了通過Matrix類,還可以通過Animation動畫來實現

他們之間的不同點在于:

1.使用Matrix類的時候,圖片的移動和旋轉,只能在控件上面。這里面控件本身沒有動,控件里面的內容動了。在實際做的時候需要考慮控件本身的大小,因為超出部分不會顯示。

2.使用Animation動畫來實現的時候,動的是控件本身。

相關文章

  • Android實現錄音功能實現實例(MediaRecorder)

    Android實現錄音功能實現實例(MediaRecorder)

    本篇文章主要介紹了Android實現錄音的實例代碼(MediaRecorder),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Android數據存儲幾種方式講解

    Android數據存儲幾種方式講解

    在開發(fā)過程中,數據存取是較為頻繁的,今天我們來了解下android幾種常見的數據存取方式。在Android中,sharePreferences是一種輕量級的數據存儲方式,采用鍵值對的存儲方式,存儲少量數據,支持基本類型的簡單數據存儲
    2022-12-12
  • Android自定義View實現加載進度條效果

    Android自定義View實現加載進度條效果

    這篇文章主要為大家詳細介紹了Android自定義View實現加載進度條效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Android獲取應用程序大小的方法

    Android獲取應用程序大小的方法

    這篇文章主要介紹了Android獲取應用程序大小的方法,有需要的朋友可以參考一下
    2014-01-01
  • Android實現屏幕鎖定源碼詳解

    Android實現屏幕鎖定源碼詳解

    本篇文章主要介紹了Android實現屏幕鎖定源碼詳解,屏幕鎖定是一個很有用的功能,有需要的可以了解一下。
    2016-10-10
  • Android判斷后臺服務是否開啟的兩種方法實例詳解

    Android判斷后臺服務是否開啟的兩種方法實例詳解

    這篇文章主要介紹了Android判斷后臺服務是否開啟的方法的相關資料,這里提供了兩種方法及實例,需要的朋友可以參考下
    2017-07-07
  • Android adb logcat 命令查看日志詳細介紹

    Android adb logcat 命令查看日志詳細介紹

    這篇文章主要介紹了Android adb logcat 命令詳細介紹的相關資料,這里對logcat 命令進行了詳細介紹,并介紹了過濾日志輸出的知識,需要的朋友可以參考下
    2016-12-12
  • Android設置桌面背景圖片的實現方法

    Android設置桌面背景圖片的實現方法

    有時候我們需要用android設置桌面背景圖片,這里簡單分享下,方便需要的朋友
    2013-06-06
  • Android 個人理財工具五:顯示賬單明細 上

    Android 個人理財工具五:顯示賬單明細 上

    本文主要介紹 Android 個人理財工具顯示賬單明細,這里提供了示例代碼,和實現效果圖,幫助大家學習理解ListView的用法,有興趣的小伙伴可以參考下
    2016-08-08
  • Android 對話框 Dialog使用實例講解

    Android 對話框 Dialog使用實例講解

    對話框是在當前的頁面之上彈出的小窗口, 用于顯示一些重要的提示信息, 提示用戶的輸入,確認信息,或顯示某種狀態(tài).如 : 顯示進度條對話框, 退出提示.接下來通過本文給大家介紹android dialog對話框知識,感興趣的朋友一起看看吧
    2016-09-09

最新評論