我想玩帆布。我可以繪製一些三角形並填充它繪製一條路徑並繪製它。我使用了路徑,點和線。記住三角法是一個很好的練習。現在我想用圓圈做同樣的事情,如下所示。我想設置一個百分比並填充此圓直到圓的高度*百分比。我怎麼可以用畫布或圖像畫一個這樣的圓圈?畫一個圓圈部分填充動態
2
A
回答
2
你應該想想有點不同。我會這樣做的方法是繪製一個彩色的矩形(其中高度是圓的預期高度的百分比),然後用圓圈裁剪。 This答案解釋瞭如何裁剪一個圓形圖像(我寧願鏈接,而不是重新輸入代碼)。
0
我終於做到了。我創建了兩種方法。按照羅爾斯特的建議,我創建了一個白色矩形作爲面具,其中高度是圓圈預期高度的百分比。
private Bitmap drawWithPorterDuff(Bitmap original, Bitmap mask, PorterDuff.Mode mode) {
Bitmap bitmap = Bitmap.createBitmap(original.getWidth(), original.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
Paint maskPaint = new Paint();
maskPaint.setAntiAlias(true);
canvas.drawBitmap(original, 0, 0, null);
maskPaint.setXfermode(new PorterDuffXfermode(mode));
canvas.drawBitmap(mask, 0, 0, maskPaint);
Bitmap edge = BitmapFactory.decodeResource(getResources(), R.drawable.edge);
maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.ADD));
canvas.drawBitmap(edge, 0, 0, maskPaint);
return bitmap;
}
public Bitmap createMask(int width, int height) {
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
paint.setAntiAlias(true);
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawRect(0, 0, width, height, paint);
return bitmap;
}
在視圖的構造我創建了一個init()方法與folling代碼
PorterDuff.Mode mode = PorterDuff.Mode.SRC_IN;
Bitmap original = BitmapFactory.decodeResource(getResources(), R.drawable.blue_graph);
Bitmap mask = createMask(original.getWidth(), (int) ((original.getHeight()) * (1 - percentage)));
Bitmap result = drawWithPorterDuff(original, mask, mode);
imageView.setImageBitmap(result);
相關問題
- 1. 使用動畫製作動畫在圓圈中填充動畫
- 2. 使用Raphael JS,部分填充一個圓圈
- 3. 畫一個圓圈,反充Android中
- 4. 畫一個填滿的圓圈
- 5. 使用畫布爲填充圓圈設置動畫
- 6. 如何畫一個圓圈,並填充顏色
- 7. 動畫填充式橢圓
- 8. OMR:評估填充圓圈
- 9. 用圓圈填充Jbutton
- 10. Android填充部分圓弧
- 11. 繪製一個圓圈,用不同的顏色填充不同的部分
- 12. 部分爲自定義投幣滑塊填充圓圈
- 13. GL_TRIANGLE_FAN畫一個圓圈
- 14. 畫一個圓圈像素
- 15. 畫一個彩色圓圈
- 16. Win32 GDI畫一個圓圈?
- 17. pygame圓圈動畫
- 18. 動畫 - 在iOS中繪製圓圈 - 未完成圓圈動畫
- 19. RaphaelJS填充路徑部分甜甜圈
- 20. 如何用PIL填充一個圓的一部分?
- 21. CSS圓形邊框填充動畫
- 22. jQuery動畫底部填充
- 23. 在距離10處的圓圈內畫一個圓圈
- 24. 爲什麼畫布圓圈看起來不像一個圓圈?
- 25. 修正D3圓圈動畫
- 26. Android圓圈彈跳動畫
- 27. javafx動畫:顯示圓圈
- 28. 沒有填充的繪製圓圈IOS
- 29. 填充不完整的圓圈
- 30. Raphaeljs用圖像填充圓圈
你可以用'drawArc()'和'設置paint.setStyle(Paint.Style.FILL);' –
與論壇網站不同,我們不使用「謝謝」,或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be - 從帖子中刪除)。順便說一句,它是「提前致謝」,而不是「感謝先進」。 –