2014-12-05 72 views
0

我想繪製使用此代碼的圓的輪廓。如何在其中繪製圓的輪廓,在Android中

private ShapeDrawable getDrawableEmptyCircle(int color){ 
    ShapeDrawable myDrawable = new ShapeDrawable(new OvalShape()); 
    myDrawable.getPaint().setColor(color); 
    myDrawable.setIntrinsicHeight(50); 
    myDrawable.setIntrinsicWidth(50); 
    myDrawable.getPaint().setStyle(Paint.Style.STROKE); 
    myDrawable.getPaint().setStrokeWidth(3); 
// myDrawable.setBounds(x, y, x + width, y + height); 
    return myDrawable; 
} 

該函數返回可繪製圓,概述但在圓的大小之外。這會在我的圈子中造成一些扭曲。這是怎麼看起來像

circle image http://picthost.net/image.php?di=YV8B

正如你可以看到,它的外形是無法正常顯示。你可以幫我嗎?

編輯:我將此drawable添加到視圖的背景。

  1. 我試圖增加視圖的大小,然後圓的大小增加(但同樣的問題)。
  2. 我已經嘗試添加邊緣視圖。
  3. 我也嘗試用佈局封裝視圖並添加一些填充。
+0

是你在整整50像素寬繪製視圖和高? – Whitney 2014-12-05 16:23:04

+0

,請參閱已編輯的問題。 – 2014-12-06 18:26:41

回答

0

經過長時間的搜尋後,打和試驗,我發現解決這個問題,希望這將有助於其他 -

這個問題得到有效解決,當我確定我在XML文件中圈,而不是創建它的通過代碼。

添加這個文件,說empty_circle.xml,寫這個 -

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="oval"> 
<corners android:radius="40dip"/> 
<stroke android:color="@color/solid_green_color" android:width="2dip"/> 
<solid android:color="@android:color/transparent"/> 
</shape> 

從你的函數中調用這個文件,如:

Drawable myDrawable= (Drawable) context.getResources().getDrawable(R.drawable.empty_circle); 
myDrawable.setColorFilter(color, PorterDuff.Mode.SRC_ATOP);