編輯:關於Android編程
1.Matrix.
Android API中有一個Matirx類,當在現有位圖對象上進行繪制或從另一個位圖對象創建某個位圖對象時,可以使用該類。這個類可以讓我們對位圖進行旋轉、裁剪、縮放、平移等操作。
Matrix類是以9個float型數字的一維數組表示的。每個數字都對應於圖像上每個點的3個坐標(x,y或z)之一。
[java]
Matrix matrix = new Matrix();
matrix.setValues(new float[] {
1, 0, 0,
0, 1, 0,
0, 0, 1 });
Matrix matrix = new Matrix();
matrix.setValues(new float[] {
1, 0, 0,
0, 1, 0,
0, 0, 1 });
頂行(1,0,0)指定源圖像的x坐標將根據以下公式轉換:x=1*x+0*y+0*z。即頂行總會影響到目標圖像的x坐標,但可以操作源圖像的x,y,z坐標。
同理,第二行和第三行將影響目標圖像的y和z坐標。
Matrix類有以下成員方法:
setRotate(), setScale(), setTranslate(), 而這幾種方法還有個字之前之後的版本(preScale(), postRotate(), postTranslate()...),這使得我們可以每次按順序完成一個以上的轉換。
2.ColorMatrix
類似於在Canvas對象上繪制時使用Matrix對象的方法,也可以使用一個ColorMatrix對象來改變用於在Canvas對象上繪制的Paint對象。
同樣,ColorMatrix也是一個浮點數數組,可以對圖像的像素進行操作。然後不同於操作x, y和z坐標,它操作的是顏色值——每個像素的RGBA值。
ColorMatrix的使用方式:
[java]
ColorMatrix cm = new ColorMatrix();
paint.setColorFilter(new ColorMatrixColorFilter(cm));
ColorMatrix cm = new ColorMatrix();
paint.setColorFilter(new ColorMatrixColorFilter(cm));即構建一個ColorMatrixColorFilter對象,並將它應用於Paint對象,從而使得ColorMatrix對象可以用來改變Canvas對象上的繪制內容。
如上默認的ColorMatrix是不會改變圖像的,因為它形如:
1,0,0,0,0
0,1,0,0,0
0,0,1,0,0
0,0,0,1,0
第一行包含了在單個像素的紅色部分上發生的操作,第二行影響綠色部分,第三行影響藍色部分,最後一行操作的是Alpha值。
而與每行相乘的數字中,第一個數字是與像素的紅色值相關聯的乘數,第二個是綠色相關聯,第三個是藍色相關聯,第四個是與Alpha相關聯,而最後一個數字不與任何值相乘。
例如,如果想改變圖像的對比度和亮度可以這樣操作:
[java]
ColorMatrix cm = new ColorMatrix();
int contrast=2;
int brightness=-25;
cm.set(new float[] {
contrast, 0, 0, 0, brightness,
0, contrast, 0, 0, brightness,
0, 0, contrast, 0, brightness,
0, 0, 0, 1, 0 });
//cm.setSaturation(.5f);//改變飽和度
paint.setColorFilter(new ColorMatrixColorFilter(cm));
ColorMatrix cm = new ColorMatrix();
int contrast=2;
int brightness=-25;
cm.set(new float[] {
contrast, 0, 0, 0, brightness,
0, contrast, 0, 0, brightness,
0, 0, contrast, 0, brightness,
0, 0, 0, 1, 0 });
//cm.setSaturation(.5f);//改變飽和度
paint.setColorFilter(new ColorMatrixColorFilter(cm));
今天給大家帶來2017年的第一篇文章,這裡先祝大家新年好。本篇文章的主題是ConstraintLayout。其實ConstraintLayout是AndroidStudi
位圖管理BitmapAndroid上的圖形使用Drawable類,而位圖管理則使用Bitmap類,java上與之對應的是awt包中的BufferedImage。Andro
我們有新的項目要進行開發了,一直想用用android studio。所以在新項目上,果斷使用。這裡是我將android studio項目share到svn倉庫的全過程。後
使用 Qt 為 Android 開發應用時,有時我們的應用會攜帶一些資源文件,如 png 、 jpg 等,也可能有一些配置文件,如 xml 等,這些文件放在哪裡呢?