国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android View如何繪制

2019-12-12 06:26:36
字體:
來源:轉載
供稿:網友

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

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

  Ⅰ、canvas就是表示一塊畫布,你可以在上面畫你所朝思暮想的東西。當我們重寫onDraw方法的時候,就能夠拿到一個Canvas對象,這個就是你的舞臺,畫你所思所想。上代碼了。

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

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

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

  1、setAntiAlias: 設置畫筆的鋸齒效果。
  2、setColor: 設置畫筆顏色
  3、setARGB:  設置畫筆的a,r,p,g值。
  4、setAlpha:  設置Alpha值
  5、setTextSize: 設置字體尺寸。
  6、setStyle:  設置畫筆風格,空心或者實心。
  7、setStrokeWidth: 設置空心的邊框寬度。
  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);  }}

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

  Ⅰ、我們運用上篇文章的知識,重寫了onMeasure方法,讓這個簡單自定義控件自適應wrap_content屬性。

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

  最終運行效果為:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永吉县| 宜章县| 西昌市| 禄丰县| 汝南县| 广东省| 泸溪县| 邹平县| 贡山| 缙云县| 广西| 民乐县| 建平县| 海宁市| 铜鼓县| 东至县| 视频| 巫溪县| 陇南市| 德格县| 张家港市| 沂水县| 德保县| 镇沅| 滦南县| 大余县| 衡阳市| 金昌市| 浦东新区| 应城市| 易门县| 西畴县| 鱼台县| 紫阳县| 刚察县| 襄樊市| 玉林市| 康平县| 高邮市| 托克托县| 天台县|