編輯:關於Android編程
Matrix工具類是對圖形進行特效處理。
Matrix 是一個矩陣工具類,本身不能對圖形進行變換,可以與其他API來結合使用。
獲取Matrix對象,可以直接創建,可以從其他封裝了Matrix類中獲取,Transformation裡面就封裝了Matrix對象。
調用Matrix對象的方法可以對圖形圖像進行平移,縮放,旋轉,傾斜等。
需要將程序對Matrix所做的變換應用到指定圖像或組件上面。
下面是一個Matrix使用方法的例子,利用按鍵來控制Bitmap的傾斜和縮放。
class MyView extends View { /**源圖*/ private Bitmap bitmap; /**Matrix對象*/ private Matrix matrix = new Matrix(); /**傾斜度*/ public float ox = 0.0f; /**縮放度*/ public float scale = 1.0f; /**源圖尺寸*/ private int width, height; /**縮放還是傾斜*/ private boolean isScale = false; public MyView(Context context, AttributeSet attrs) { super(context, attrs); //得到位圖 bitmap = ((BitmapDrawable) this.getResources().getDrawable( R.drawable.ic_launcher)).getBitmap(); width = bitmap.getWidth(); height = bitmap.getHeight(); //按鍵控制,首先要獲取到焦點 this.setFocusable(true); } @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); //重置Matrix、傾斜狀態時恢復到源圖再進行縮放 matrix.reset(); if(isScale){ //x/y軸同比放大縮小 matrix.setScale(scale, scale); }else{ matrix.setSkew(ox,ox); } //得到新圖 Bitmap b = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true); //將程序對Matrix所做的變換應用到指定圖像或組件上面 canvas.drawBitmap(b, matrix, null); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_LEFT://傾斜 isScale=false; ox+=0.1; //刷新界面,view類也有該方法 postInvalidate(); break; case KeyEvent.KEYCODE_DPAD_RIGHT://傾斜 isScale=false; ox-=0.1; postInvalidate(); break; case KeyEvent.KEYCODE_DPAD_UP://放大 isScale=true; if(scale<2.0){ scale+=0.1; } postInvalidate(); break; case KeyEvent.KEYCODE_DPAD_DOWN://縮小 isScale=true; if(scale>0.5){ scale-=0.1; } postInvalidate(); break; default: break; } return super.onKeyDown(keyCode, event); } }
1,手機獲取ROOT權限(我的是小米note,直接下載MIUI開發版安裝即可)2,在應用市場下載(終端模擬器),安裝。3,賦予(終端模擬器)ROOT權限。提示:測試其是否
移植Android到不同的設備 Android允許提供不同的硬件平台和驅動支持Android的運行。硬件抽象層(Hardware Abstraction Layer)
直接上效果圖 功能特色: 1、可以設置刮開後顯示文字或圖片 2、可以統計已刮開區域所占百分比 Demo下載地址:RubberDem
工作中需要實現仿釘釘群頭像的一個功能,就是個人的頭像拼到一起顯示,看了一下市場上的APP好像微信的群聊頭像是組合的,QQ的頭像不是,別的好像也沒有了。給大家分享一下怎麼實