android canvas探究

來源:互聯網
上載者:User

標籤:android   canvas   

protected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);//構造兩個畫筆,一個紅色,一個綠色Paint paint_green = generatePaint(Color.GREEN, Style.STROKE, 3);Paint paint_red   = generatePaint(Color.RED, Style.STROKE, 3);//構造一個矩形Rect rect1 = new Rect(0,0,400,220);//在平移畫布前用綠色畫下邊框canvas.drawRect(rect1, paint_green);//平移畫布後,再用紅色邊框重新畫下這個矩形canvas.translate(100, 100);canvas.drawRect(rect1, paint_red);}private Paint generatePaint(int color,Paint.Style style,int width){Paint paint = new Paint();paint.setColor(color);paint.setStyle(style);paint.setStrokeWidth(width);return paint;}

程式碼分析:

這段代碼中,對於同一個矩形,在平移畫布前利用綠色畫下矩形邊框,在平移後,再用紅色畫下矩形邊框。大家是不是會覺得這兩個邊框會重合?實際結果是這樣的。



前後調用的是一個canvas對象,但是,這個對象並不是直接被圖形賦值,這個對象實際上是生出用來畫圖的“圖層”,但其本身不是,每次調用draw等函數,便完成了一個圖層,所以儘管調用的是canvas同一個對象,實際上調用的是不同的圖層

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

android canvas探究

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.