欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android View如何繪制

 更新時(shí)間:2016年05月04日 16:39:28   作者:laozhu1124  
要了解View如何繪制,就需要了解canvas(畫布)是什么?paint(畫筆)能夠做什么,想要深入了解的朋友可以參考一下

上文說道了Android如何測量,但是一個漂亮的控件我只知道您長到哪兒,這當(dāng)然不行。只需要簡單重寫OnDraw方法,并在Canvas(畫布)對象上調(diào)用那根五顏六色的畫筆就能夠畫出這控件"性感"的外表。那么View又是如何進(jìn)行繪制了?

  要了解View如何繪制,就需要了解canvas(畫布)是什么?paint(畫筆)能夠做什么。

 ?、瘛anvas就是表示一塊畫布,你可以在上面畫你所朝思暮想的東西。當(dāng)我們重寫onDraw方法的時(shí)候,就能夠拿到一個Canvas對象,這個就是你的舞臺,畫你所思所想。上代碼了。

@Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
  }

   當(dāng)您需要對某某控件進(jìn)行進(jìn)行重新繪制的時(shí)候,我們只需要在這個大舞臺(Canvas)調(diào)用Canvas.DrawXXX方法畫出各種各樣的圖形。

  Ⅱ、paint就是畫布上揮灑自如的畫筆。要畫圖,得調(diào)整畫筆,待畫筆調(diào)整好之后,再將圖像繪制到畫布上,這樣才可以顯示在手機(jī)屏幕上。Paint上提供許多屬性和方法用來設(shè)置畫筆。

  1、setAntiAlias: 設(shè)置畫筆的鋸齒效果。
  2、setColor: 設(shè)置畫筆顏色
  3、setARGB:  設(shè)置畫筆的a,r,p,g值。
  4、setAlpha:  設(shè)置Alpha值
  5、setTextSize: 設(shè)置字體尺寸。
  6、setStyle:  設(shè)置畫筆風(fēng)格,空心或者實(shí)心。
  7、setStrokeWidth: 設(shè)置空心的邊框?qū)挾取?
  8、getColor:  得到畫筆的顏色
  9、getAlpha:  得到畫筆的Alpha值。

  我們既然知道了畫筆與畫布,通過一個短小精悍的例子來看畫布和畫筆怎么共同作用出一個想要的圖形。老樣子,上代碼:

public class MyView extends View {

  private Paint paint;
  public MyView(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
  }

  private void init() {
    paint=new Paint(Paint.ANTI_ALIAS_FLAG);
    paint.setColor(Color.RED);
    paint.setStrokeWidth(5);
    paint.setTextSize(28);
    
  }

  @Override
  protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    setMeasuredDimension(measureWidth(widthMeasureSpec),
        measureWidth(heightMeasureSpec));
  }

  public int measureWidth(int measureSpec) {
    int result = 0;
    int specMode = MeasureSpec.getMode(measureSpec);
    int specSize = MeasureSpec.getSize(measureSpec);
    if (specMode == MeasureSpec.EXACTLY) {
      result = specSize;
    } else {
      result = 200;
      if (specMode == MeasureSpec.AT_MOST) {
        result = Math.min(specSize, result);
      }
    }
    return result;
  }
  
  @Override
  protected void onDraw(Canvas canvas) {
    canvas.drawText("中國", 0, 80, paint);
    super.onDraw(canvas);
  }
}


上述代碼,我們做了這么幾件事了:

 ?、?、我們運(yùn)用上篇文章的知識,重寫了onMeasure方法,讓這個簡單自定義控件自適應(yīng)wrap_content屬性。

  Ⅱ、我們調(diào)用了OnDraw方法,拿到Canvas與paint,在view上寫了"中國"文字。

  最終運(yùn)行效果為:

  這就是我對Android View 如何繪制一點(diǎn)灼見,希望大家多提建議。

相關(guān)文章

最新評論