天天看點

自定義view常用屬性

//畫筆的設定
mPaint.setAntiAlias(false);//消除鋸齒
mPaint.setStrokeWidth(mCircleWidth); // 設定圓環的寬度  
mPaint.setStrokeCap(Paint.Cap.ROUND); // 畫出的線是線段,并且線段的末端是圓頭
mPaint.setStyle(Paint.Style.STROKE); // 設定空心 
mPaint.getTextBounds(titleText, 0, titleText.length(), mBound);//以 (0,0)為起點傳回一個比對目前的字元最小的矩形


---------------------------------------------------------------------

getPaddingTop() //擷取設定的view的padding值
setMeasuredDimension(mWide, mHeight);//在onmeasure方法中,重新構造了view的大小
postInvalidate(); //重畫view   postInvalidate()在工作者線程中被調用    重新整理view 
requestLayout();   //重畫view  當被重新整理的view需要重新重新整理父類布局的時候進行調用

---------------------------------------------------------------------
//擷取 attrs檔案中的屬性值
TypedArray a =context.getTheme().obtainStyledAttributes(attrs, R.styleable.SecondView, defStyleAttr, 0);
//限定弧形區域的上下左右的位置
RectF oval=new RectF(float left, float top, float right, float bottom);
/**
 *  oval :指定圓弧的外輪廓矩形區域。
	startAngle: 圓弧起始角度,機關為度。
	sweepAngle: 圓弧掃過的角度,順時針方向,機關為度。
	useCenter: 如果為True時,在繪制圓弧時将圓心包括在内,通常用來繪制扇形。
	paint: 繪制圓弧的畫闆屬性,如顔色,是否填充等。

	其中x軸正極是  0  ,y軸的正極是  -90
 */
canvas.drawArc(oval, -90, mProgress, false, mPaint);

/**
  畫一個圓
  cx:原點x軸位置
  cy:原點y軸位置
  radius:圓的半徑
  paint:畫筆   可以通過畫筆的設定達成很多的效果

*/
canvas.drawCircle(float cx, float cy, float radius, Paint paint);

//一個矩形,一般字元串和圖檔都是需要通過這個矩形作為載體進行畫圖  以下的mbound就是一個矩形對象
Rect rect=new Rect();
mPaint.getTextBounds(titleText, 0, titleText.length(), mBound);//以 (0,0)為起點傳回一個比對目前的字元最小的矩形
           

繼續閱讀