最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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最簡單的寫法。當然界面上什么都不會顯示,除了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() 當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(畫布)類

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

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

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

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

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

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

Paint(畫筆)類

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

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

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

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

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

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

  6、setStyle():設置畫筆的風格(空心或實心)

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

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

Rect(尺寸)類

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

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

相關文章

最新評論

遂宁市| 绵阳市| 土默特左旗| 射阳县| 酒泉市| 东丽区| 墨玉县| 广州市| 怀仁县| 凯里市| 德安县| 威宁| 青川县| 长垣县| 泗阳县| 繁昌县| 遵化市| 临安市| 六盘水市| 河池市| 乳源| 恭城| 海城市| 福州市| 会泽县| 仁怀市| 砚山县| 绥宁县| 商河县| 方山县| 吐鲁番市| 内丘县| 博乐市| 长垣县| 双辽市| 阿坝县| 德清县| 天全县| 南通市| 前郭尔| 西林县|