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

首頁(yè) > 系統(tǒng) > Android > 正文

Android自定義View中Paint、Rect、Canvas介紹(一)

2019-10-23 18:33:48
字體:
供稿:網(wǎng)友

自定義View對(duì)于新手而言貌似是一個(gè)很復(fù)雜的東西。格式,各函數(shù)的意義。對(duì)于大神經(jīng)常忘記各函數(shù)及一些參數(shù)的具體寫法及意義,剛好在做一個(gè)風(fēng)車效果,把過程及遇到的問題都寫下來

1、如何自定義一個(gè)View

public class LeafView extends View {  private String TAG = "--------LeafView";  public LeafView(Context context, AttributeSet attrs) {    super(context, attrs);    Log.i(TAG, "我是自定義View: LeafView");  }}
<LinearLayout  android:layout_width="match_parent"  android:layout_height="100dp"  android:orientation="vertical"  android:background="@color/colorPrimary"  >  <com.my.LeafView    android:id="@+id/leafView"    android:layout_width="50dp"    android:layout_height="50dp"    android:layout_gravity="center_horizontal"    /> </LinearLayout>

上面就是自定義了一個(gè)LeafView最簡(jiǎn)單的寫法。當(dāng)然界面上什么都不會(huì)顯示,除了LinearLayout的背景色

Android,自定義View

2、onDraw(Canvas canvas)方法

我們現(xiàn)來看下面一段代碼,畫出一個(gè)紅色的正方形

public class MyView extends View {  private String TAG = "--------MyView";  private int width, height;  public MyView(Context context, AttributeSet attrs) {    super(context, attrs);  }  @Override  protected void onSizeChanged(int w, int h, int oldw, int oldh) {    super.onSizeChanged(w, h, oldw, oldh);    width = w;    height = h;  }  @Override  protected void onDraw(Canvas canvas) {    super.onDraw(canvas);    Rect rect = new Rect(0, 0, width, height);    Paint paint = new Paint();    paint.setColor(Color.RED);    canvas.drawRect(rect, paint);  }}

Android,自定義View

通過看上面代碼,有一個(gè)onSizeChanged()、onDraw()、canvas.drawRect()方法,有一個(gè)Paint, Rect, Canvas類

1、onSizeChanged() 當(dāng)View的大小發(fā)生改變時(shí),會(huì)調(diào)用此方法。這里我們獲取View的長(zhǎng)和寬

2、onDraw(Canvas canvas) 這個(gè)方法就是自定義View的核心。繪制各種圖形

  protected void onDraw(Canvas canvas) {    super.onDraw(canvas);    Rect rect = new Rect(0, 0, width, height);    Paint paint = new Paint();    paint.setColor(Color.RED);    canvas.drawRect(rect, paint);  }

Canvas(畫布)類

可以用來實(shí)現(xiàn)各種圖形的繪制工作,如繪制直線、矩形、圓等等   

  1、繪制直線:canvas.drawLine();

  2、繪制矩形:canvas.drawRect();

  3、繪制圓形:canvas.drawCircle();

  4、繪制字符:canvas.drawText();

  5、繪制圖形:canvas.drawBirmap();

Paint(畫筆)類

要繪制圖形,首先得調(diào)整畫筆,按照自己的開發(fā)需要設(shè)置畫筆的相關(guān)屬性

  1、setAntiAlias():設(shè)置畫筆的鋸齒效果

  2、setColor():設(shè)置畫筆的顏色

  3、setARGB():設(shè)置畫筆的A、R、G、B值

  4、setAlpha():設(shè)置畫筆的Alpha值

  5、setTextSize():設(shè)置字體的尺寸

  6、setStyle():設(shè)置畫筆的風(fēng)格(空心或?qū)嵭模?/p>

  7、setStrokeWidth():設(shè)置空心邊框的寬度

  8、getColor():獲取畫筆的顏色

Rect(尺寸)類

設(shè)置畫布大小new Rect(int left, int top, int right, int bottom)

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Android開發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 延津县| 宣武区| 科技| 阳城县| 德化县| 嘉祥县| 旌德县| 资兴市| 高尔夫| 莫力| 阳春市| 射洪县| 龙陵县| 长武县| 高陵县| 新民市| 什邡市| 兴文县| 武冈市| 呼和浩特市| 界首市| 玉龙| 荆州市| 河西区| 东阳市| 曲沃县| 特克斯县| 大英县| 南丰县| 北海市| 宁德市| 浦城县| 克什克腾旗| 翁源县| 深圳市| 抚顺市| 甘南县| 龙川县| 大理市| 和田县| 阿瓦提县|