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

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

 更新時間:2017年03月23日 11:01:28   作者:罔少年  
這篇文章主要為大家詳細(xì)介紹了Android自定義View中Paint、Rect、Canvas的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

1、如何自定義一個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>

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

2、onDraw(Canvas canvas)方法

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

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);
  }
}


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

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

2、onDraw(Canvas canvas) 這個方法就是自定義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)

 以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android自定義view漸變圓形動畫

    Android自定義view漸變圓形動畫

    這篇文章主要為大家詳細(xì)介紹了Android自定義view漸變圓形動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 全面解析Android應(yīng)用開發(fā)中Activity類的用法

    全面解析Android應(yīng)用開發(fā)中Activity類的用法

    這篇文章主要介紹了Android應(yīng)用開發(fā)中Activity類的用法,包括Activity間的數(shù)據(jù)傳遞以及Activity的創(chuàng)建方式等,需要的朋友可以參考下
    2016-02-02
  • android嵌套滾動入門實(shí)踐

    android嵌套滾動入門實(shí)踐

    嵌套滾動是 Android OS 5.0之后,google 為我們提供的新特性,本篇文章主要介紹了android嵌套滾動入門實(shí)踐,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Android實(shí)現(xiàn)完整游戲循環(huán)的方法

    Android實(shí)現(xiàn)完整游戲循環(huán)的方法

    這篇文章主要介紹了Android實(shí)現(xiàn)完整游戲循環(huán)的方法,以實(shí)例代碼形式較為詳細(xì)的分析了Android游戲循環(huán)的實(shí)現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Android仿微信錄音功能(錄音后的raw文件轉(zhuǎn)mp3文件)

    Android仿微信錄音功能(錄音后的raw文件轉(zhuǎn)mp3文件)

    這篇文章主要介紹了Android中仿微信錄音功能錄音后的raw文件轉(zhuǎn)mp3文件,本文通過實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2019-11-11
  • Android?實(shí)現(xiàn)自定義折線圖控件

    Android?實(shí)現(xiàn)自定義折線圖控件

    這篇文章主要介紹了Android?實(shí)現(xiàn)自定義折線圖控件,文章圍繞主題相關(guān)內(nèi)容展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,更興趣的小伙伴可以參考一下
    2022-06-06
  • Android Studio 3.0后出現(xiàn)AAPT2與“android.enableAapt2”問題的解決方法

    Android Studio 3.0后出現(xiàn)AAPT2與“android.enableAapt2”問題的解決方法

    這篇文章主要給大家介紹了關(guān)于Android Studio 3.0后出現(xiàn)AAPT2與“android.enableAapt2”問題的解決方法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Jenkins打包android應(yīng)用時自動簽名apk詳解

    Jenkins打包android應(yīng)用時自動簽名apk詳解

    這篇文章主要介紹了Jenkins打包android應(yīng)用時自動簽名apk詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Android UI控件之ProgressBar進(jìn)度條

    Android UI控件之ProgressBar進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了Android UI控件之ProgressBar進(jìn)度條的實(shí)現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • android實(shí)現(xiàn)密碼框右側(cè)顯示小眼睛

    android實(shí)現(xiàn)密碼框右側(cè)顯示小眼睛

    這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)密碼框右側(cè)顯示小眼睛,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09

最新評論