編輯:關於Android編程
1.輸入矩陣:
Matrix矩陣類,當現有位圖對象上進行繪制或從另一個位圖對象創建某個位圖時,可以使用該類。
Matrix矩陣類的每個數字都應用於圖像上每個點的3個坐標(x,y或z)之一:
如:1 , 0 , 0,
0, 1, 0,
0, 0, 1
第一行:指定x坐標:x=1x+0y+0z;
第二行:指定y坐標:y=0x+1y+oz;
第三行:指定z坐標:z=0x+0y+1z;
Matrix matrix=new Matrix(); matrix.setValues(new float[]{ 1,0.5f,0, 0,1,0, 0,0,1 }); canvas.drawBitmap(bmp, matrix, paint); copyPicture.setImageBitmap(alteredBitmap);在需要增加結果位圖大小是可以設置:
alteredBitmap = Bitmap.createBitmap(bmp.getWidth()*2, bmp.getWidth(), bmp.getConfig());
2.Matrix類的方法
(1)旋轉:
Matrix matrix=new Matrix();
//matrix.setRotate(15);/*旋轉的角度,圍繞默認點(0,0),正數順時針旋轉,負數逆時針旋轉,默認點是圖像左上角*/
matrix.setRotate(15, bmp.getWidth()/2,bmp.getHeight()/2);//中心旋轉
canvas.drawBitmap(bmp, matrix, paint);
(2)縮放:
matrix.setScale(1.5f, 1);//縮放,第一個參數x軸的縮放比例,第二個參數y軸的縮放比例。
(3)平移:
matrix.setTranslate(1.5f, -10);//平移,第一個參數x軸的移動數量,第二個參數y軸的移動數量。
(4)鏡像:
matrix.setScale(-1, 1);
matrix.postTranslate(bmp.getWidth(), 0);//向右移動
(5)翻轉:
matrix.setScale(1,-1);
matrix.postTranslate(0, bmp.getHeight());//向下移動
(6)繪制替代圖像:
以前所使用的方法的缺點是圖像會被截斷,因為沒有計算轉換後的結果大小。解決方法:當初次創建位圖對象時,應用Matrix對象而不是繪制到一個空的位圖對象中。
通過這種方式無需再獲得Canvas和Paint對象。缺點是不能再更改位圖對象。
在Bitmap類中存在一個靜態方法createBitmap.
Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, false);//參數不再說明。
示例:
Matrix matrix=new Matrix(); matrix.setRotate(15, bmp.getWidth()/2,bmp.getHeight()/2);//中心旋轉 Bitmap alteredBitmap=Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), matrix, false);
copyPicture.setImageBitmap(alteredBitmap);
通常情況下我們想實現文字的走馬燈效果需要在xml文件中這樣設置 <textview android:layout_width="wrap_content
一、主線程和Looper我們知道android中可以使用Handler向主線程發送消息,來實現線程間的異步通信,AsyncTask內部其實也是使用Handler實現的。主
本文實例講述了Android編程布局控件之AbsoluteLayout用法。分享給大家供大家參考,具體如下:AbsoluteLayout是絕對布局管理器,指的是指定組件的
Intent意圖是android中非常重要的部分,他在Activity,service中有較為廣泛的應用。 1 public void startActiv
實現功能:實現NetMusicListAdapter(網絡音樂列表適配器