[英]How to make circle drawable in Android custom canvas?
我想讓我的應用程序可以按用戶繪制圓圈。 繪圖非常簡單-用戶只需在某處按畫布,然后按預定的圓圈即可
這里最困難的部分是用一些可繪制的(圖片)填充來繪制它。 關於矩形,這非常簡單。 然后,您只需要編寫:
Drawable drawable = getResources().getDrawable(R.drawable.my_background_picture);
drawable.setBounds(myRectangle);
drawable.draw(myCanvas);
一切都在我的自定義視圖的onDraw()
方法上完成。
不幸的是,沒有這么簡單的方法可以制作成圓形。 我發現的是Vogella的教程中的一些修改:
InputStream resource = getResources().openRawResource(R.drawable.sand);
Bitmap bitmap = BitmapFactory.decodeStream(resource);
BitmapShader shader;
shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP,Shader.TileMode.CLAMP);
paint = new Paint();
paint.setAntiAlias(true);
paint.setShader(shader);
myCanvas.drawRoundRect(myRectangle, 120, 120, paint);
乍一看看起來還可以,但事實並非如此。 該命令的效果類似於下面圖片中的框架,因此您只需在圖片上移動空心圓即可。 與實際移動矩形位圖的矩形不同。
所以,我的問題是- 有沒有辦法使可繪制的圓也可以移動/調整大小?
為什么要畫一個畫? 您可以通過canvas.drawCircle命令輕松繪制一個圓。 您也可以通過Path對象輕松創建一個。
編輯:
如果需要可繪制對象,請嘗試基於OvalShape制作ShapeDrawable。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.