簡體   English   中英

如何在Android自定義畫布中使圓可繪制?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM