我正在嘗試在MapView上繪製自定義可繪製覆蓋圖。 我使用擴展Drawable的自定義類在畫布上繪製圓。然後,我將一個半徑變量傳遞給它,並將其添加到應用於MapView的ItemizedOverlay中。Android:canvas.drawCircle裏面有一個橢圓?
到目前爲止,它工作得非常好,但由於某種原因,canvas.drawCircle方法正在繪製一個透明的圓,其內部看起來像一個橢圓,而且我不能,對於我來說,找出是什麼原因造成的。我確實希望這個圓是透明的,但我不希望這個橢圓的東西在裏面。
這是自定義繪製對象類:
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
public class PileDrawable extends Drawable {
private static final Paint paint = new Paint();
int rad;
public PileDrawable(int radius) {
paint.setARGB(100, 0, 255, 0);
paint.setAntiAlias(false);
paint.setStyle(Paint.Style.FILL);
rad=radius;
}
@Override
public void draw(Canvas canvas) {
canvas.drawCircle(0, 0, rad, paint);
}
@Override
public int getOpacity() {
return 0;
}
@Override
public void setAlpha(int alpha) {
}
@Override
public void setColorFilter(ColorFilter cf) {
}
}
這是什麼樣的樣子,無視我缺乏MS油漆技能...
http://img222.imageshack.us/img222/4356/circleellipse.png
我有一個揮之不去感覺當我將邊界應用於Drawable時會出現問題。
PileDrawable pd = new PileDrawable((int)(mapView.getProjection().metersToEquatorPixels(Radius) * (1/ Math.cos(Math.toRadians(point.getLatitudeE6())))));
pd.setBounds(0,0,pd.getIntrinsicWidth(),pd.getIntrinsicHeight()); //HERE?
那麼,有什麼想法嗎?