編輯:關於Android編程
BitMap代表一張位圖,擴展名可以是.bmp或者.dib。位圖是Windows標准格式圖形文件,它將圖像定義為由點(像素)組成,每個點可以由多種色彩表示,包括2、4、8、16、24和32位色彩。。
在android系統當中,bitmap是圖像處理最重要的類之一。用它可以獲取圖像文件信息,進行圖像剪切、旋轉、縮放、對稱等操作,並可以指定格式保存圖像文件。
首先,寫一個自定義View:
public class MyBitmapView extends View {
private int width;
private int height;
private int mBitmapWidth;
private int mBitmapHeight;
private Paint mPaint;
private Bitmap mBitmap;
private Matrix matrix;
public MyBitmapView(Context context) {
super(context);
}
public MyBitmapView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint();
mBitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.aa);
mBitmapWidth = mBitmap.getWidth();
mBitmapHeight = mBitmap.getHeight();
matrix = new Matrix();
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);
height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);
setMeasuredDimension(width, height);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//平移圖像,參數:水平相移量,垂直相移量
matrix.postTranslate(mBitmapWidth, mBitmapHeight);
canvas.drawBitmap(mBitmap, matrix, mPaint);
//重置matrix,以前的狀態會消失
matrix.reset();
//將圖像放大,參數:水平放大倍數,垂直放大倍數;如果小於1,則是縮小
matrix.postScale(2, 2);
canvas.drawBitmap(mBitmap, matrix, mPaint);
matrix.reset();
canvas.drawBitmap(mBitmap, 0, 0, mPaint);
matrix.reset();
canvas.drawBitmap(mBitmap, 0, 0, mPaint);
//將圖形選擇180度,旋轉後的圖形位置會發生變化
matrix.postRotate(180);
matrix.postTranslate(mBitmapWidth*2,mBitmapHeight*2);
canvas.drawBitmap(mBitmap, matrix, mPaint);
//側切
canvas.drawBitmap(mBitmap,0,0,mPaint);
matrix.reset();
//側切一個圖像,實際上是將圖像右下角的x,y坐標增加參數倍,這裡x坐標不變,y坐標增加一倍
matrix.postSkew(0,1);
canvas.drawBitmap(mBitmap,matrix,mPaint);
//x軸對稱
matrix.reset();
canvas.drawBitmap(mBitmap, 0, 0, mPaint);
float values[] = {1f,0f,0f,0f,-1f, 0f, 0f, 0f,1f};
//此方法作出的處理是:讓圖片的矩陣與傳入的矩陣相乘
matrix.setValues(values);
matrix.postTranslate(0, mBitmapHeight * 2);
canvas.drawBitmap(mBitmap,matrix,mPaint);
//y軸對稱
matrix.reset();
canvas.drawBitmap(mBitmap,0,0,mPaint);
float values2[] = {-1f,0f,1f,0f,1f, 0f, 0f, 0f,1f};
matrix.setValues(values2);
matrix.postTranslate(mBitmapWidth*2,0);
canvas.drawBitmap(mBitmap,matrix,mPaint);
}
}
平移:
縮放:<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjxiciAvPg0KPGltZyBhbHQ9"這裡寫圖片描述" src="/uploadfile/Collfiles/20150918/201509180849428.png" title="\" />
旋轉:
側切:
x軸對稱:
y軸對稱:
做了一個簡單的 引導頁 重點其實 是 引導頁下面的點隨著頁面滑動,上圖 就是 三個點 固定 一個點 滑動 算出來 每個點間隔距離 然後通過 公式算出 滑動多少
Android系統中的ContextMenu(上下文菜單)類似於PC中的右鍵彈出菜單,當一個視圖注冊到一個上下文菜單時,執行一個在該對象上的“長按”動作,將出
介紹相信開發Android的人都會有這種體會:從網上下載的demo運行的好好的,但是只要出現了滑動沖突,Demo就無法正常工作了。但是不用擔心,解決滑動沖突有固定的模式,
有時候想在EditText左邊放一個圖片,如圖所示:就可以在xml布局文件中的EditText定義代碼中,添加入下面的代碼,即可實現: android:draw