Я пытаюсь нарисовать собственное наложение Drawable на MapView.Я использую пользовательский класс, расширяющий Drawable, чтобы нарисовать круг на холсте.Затем я передаю ей радиус-переменную и добавляю ее в ItemizedOverlay, который применяется к MapView.
Пока что все работает довольно хорошо, но по какой-то причине метод canvas.drawCircle рисует прозрачныйкруг с чем-то похожим на эллипс, и я не могу понять, что вызывает его.Я хочу, чтобы круг был прозрачным, но я не хочу, чтобы внутри него был эллипс.
Вот пользовательский класс Drawable:
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?
Итак, есть идеи?