編輯:關於Android編程
Paint:畫筆對象,畫圖用的“筆”
Color:顏色,相當於調料
Canvas:畫布,現實中的紙板
常用的方法就是設置和獲取到畫筆的樣式:
paint.setStyle(); 設置畫筆的風格,空心的或者是實心的
paint.setColor(); 設置畫筆的顏色
paint.setStrokeWidth(); 設置邊框線的寬度
paint.setAlpha(); 設置畫筆的Alpha值
paint.setAntiAlias(); 設置畫筆的鋸齒效果
paint.setTextSize(); 設置字體的大小
paint.getAlpha(); 獲取到畫筆的Alpha值
paint.getColor(); 獲取到畫筆的顏色
paint.getTextBounds(); 獲取到最小的能包容字體的邊框
。。。。。。。
通過Color.顏色名 ,來獲取到想要的顏色。
Color裡面設置了許多常用的顏色枚舉值,比如:
@ColorInt public static final int BLACK = 0xFF000000;
@ColorInt public static final int DKGRAY = 0xFF444444;
@ColorInt public static final int GRAY = 0xFF888888;
@ColorInt public static final int LTGRAY = 0xFFCCCCCC;
@ColorInt public static final int WHITE = 0xFFFFFFFF;
@ColorInt public static final int RED = 0xFFFF0000;
@ColorInt public static final int GREEN = 0xFF00FF00;
@ColorInt public static final int BLUE = 0xFF0000FF;
@ColorInt public static final int YELLOW = 0xFFFFFF00;
@ColorInt public static final int CYAN = 0xFF00FFFF;
@ColorInt public static final int MAGENTA = 0xFFFF00FF;
@ColorInt public static final int TRANSPARENT = 0;
同樣,也可以自定義想要的顏色:調用Color.argb()
/**
* Return a color-int from alpha, red, green, blue components.
* These component values should be [0..255], but there is no
* range check performed, so if they are out of range, the
* returned color is undefined.
* @param alpha Alpha component [0..255] of the color
* @param red Red component [0..255] of the color
* @param green Green component [0..255] of the color
* @param blue Blue component [0..255] of the color
*/
@ColorInt
public static int argb(int alpha, int red, int green, int blue) {
return (alpha << 24) | (red << 16) | (green << 8) | blue;
}
/**
* Draw a line segment with the specified start and stop x,y coordinates,
* using the specified paint.
*
*
Note that since a line is always "framed", the Style is ignored in the paint.
* *
Degenerate lines (length is 0) will not be drawn.
* * @param startX The x-coordinate of the start point of the line * @param startY The y-coordinate of the start point of the line * @param paint The paint used to draw the line */ public void **drawLine**(float startX, float startY, float stopX, float stopY, @NonNull Paint paint)
/**
* Draw the specified circle using the specified paint. If radius is <= 0,
* then nothing will be drawn. The circle will be filled or framed based
* on the Style in the paint.
*
* @param cx The x-coordinate of the center of the cirle to be drawn
* @param cy The y-coordinate of the center of the cirle to be drawn
* @param radius The radius of the cirle to be drawn
* @param paint The paint used to draw the circle
*/
public void **drawCircle**(float cx, float cy, float radius, @NonNull Paint paint)
/**
* Draw the specified Rect using the specified paint. The rectangle will
* be filled or framed based on the Style in the paint.
*
* @param left The left side of the rectangle to be drawn
* @param top The top side of the rectangle to be drawn
* @param right The right side of the rectangle to be drawn
* @param bottom The bottom side of the rectangle to be drawn
* @param paint The paint used to draw the rect
*/
public void **drawRect**(float left, float top, float right, float bottom, @NonNull Paint paint)
/**
* Draw the specified bitmap, with its top/left corner at (x,y), using
* the specified paint, transformed by the current matrix.
*
*
Note: if the paint contains a maskfilter that generates a mask which * extends beyond the bitmap's original width/height (e.g. BlurMaskFilter), * then the bitmap will be drawn as if it were in a Shader with CLAMP mode. * Thus the color outside of the original width/height will be the edge * color replicated. * *
If the bitmap and canvas have different densities, this function * will take care of automatically scaling the bitmap to draw at the * same density as the canvas. * * @param bitmap The bitmap to be drawn * @param left The position of the left side of the bitmap being drawn * @param top The position of the top side of the bitmap being drawn * @param paint The paint used to draw the bitmap (may be null) */ public void **drawBitmap**(@NonNull Bitmap bitmap, float left, float top, @Nullable Paint paint) { throwIfCannotDraw(bitmap)
/**
* Draw the text, with origin at (x,y), using the specified paint. The
* origin is interpreted based on the Align setting in the paint.
*
* @param text The text to be drawn
* @param x The x-coordinate of the origin of the text being drawn
* @param y The y-coordinate of the baseline of the text being drawn
* @param paint The paint used for the text (e.g. color, size, style)
*/
public void **drawText**(@NonNull String text, float x, float y, @NonNull Paint paint)
/**
*
Draw the specified arc, which will be scaled to fit inside the * specified oval.
* *
If the start angle is negative or >= 360, the start angle is treated * as start angle modulo 360.
* *
If the sweep angle is >= 360, then the oval is drawn * completely. Note that this differs slightly from SkPath::arcTo, which * treats the sweep angle modulo 360. If the sweep angle is negative, * the sweep angle is treated as sweep angle modulo 360
* *
The arc is drawn clockwise. An angle of 0 degrees correspond to the * geometric angle of 0 degrees (3 o'clock on a watch.)
* * @param oval The bounds of oval used to define the shape and size * of the arc * @param startAngle Starting angle (in degrees) where the arc begins * @param sweepAngle Sweep angle (in degrees) measured clockwise * @param useCenter If true, include the center of the oval in the arc, and close it if it is being stroked. This will draw a wedge * @param paint The paint used to draw the arc */ public void **drawArc**(@NonNull RectF oval, float startAngle, float sweepAngle, boolean useCenter, @NonNull Paint paint)
。。。。。。。
自定義view的時候一般會重寫onDraw()方法,畫圖時必要的三要素:Color,paint,canvas
隨著互聯網技術的不斷進步,Android的Vector圖像的時代已經到來. 在Google的最新支持庫v23.2中, AppCompat類已經使用Vector
一、Android平台濾鏡濾鏡這個功能在目前的市場上應用很廣泛,發展也非常快,總結起來,基本上有以下三種應用會包含濾鏡功能,都各有所長。 二、相機濾鏡介紹1、相
Github項目地址,歡迎star~!初始化OpenGL ES環境OpenGL ES的使用,一般包括如下幾個步驟:1. EGL Context初始化2. OpenGL E
平時我們使用手機想要了解更多信息或者相關教程的時候,如果想要更快更准確地查找到相關的內容,我們就需要知道它的機型信息以便於查找,鑒於很多手機用戶不知道如何查