首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android谷歌地图中制作圆圈色灯

如何在Android谷歌地图中制作圆圈色灯
EN

Stack Overflow用户
提问于 2012-10-18 21:06:14
回答 1查看 683关注 0票数 0

下面是我在Android谷歌地图上画圆圈的代码。对我来说很好。

问题陈述:-

目前,在谷歌地图上绘制的圆圈非常黑暗。我需要做的圆圈little bit light with the same color,我现在有。这是否有可能通过调整油漆或颜色中的几个参数来使这个圆圈稍微轻一点呢?中间的地方更暗,不知道为什么。我只需要使它在所有的四个圆圈,我现在有轻。

代码语言:javascript
复制
   class MapOverlay extends Overlay {
    private GeoPoint pointToDraw;
    int[] imageNames=new int[6];
    private Point mScreenPoints;
    private Bitmap mBitmap;
    private Paint mCirclePaint;


    public MapOverlay(GPSLocationListener gpsLocationListener, int currentUser) {
        imageNames[0]=currentUser;
        mCirclePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        mCirclePaint.setColor(0x30000000);
        mCirclePaint.setStyle(Style.FILL_AND_STROKE);
        mBitmap = BitmapFactory.decodeResource(getResources(),imageNames[0]);
        mScreenPoints = new Point();
    }

    public void setPointToDraw(GeoPoint point) {
        pointToDraw = point;
    }

    public GeoPoint getPointToDraw() {
        return pointToDraw;
    }

    @Override
    public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) {
        super.draw(canvas, mapView, shadow);
        if (pointToDraw == null) {
            return true;
        }
        mScreenPoints = mapView.getProjection().toPixels(pointToDraw, mScreenPoints);
        int totalCircle=5;
        int radius=40;
        int centerimagesize=35;
        for (int i = 1; i <= totalCircle; i ++) { 
            canvas.drawCircle(mScreenPoints.x,mScreenPoints.y, i*radius, mCirclePaint); 
        } 
        canvas.drawBitmap(mBitmap, (mScreenPoints.x-(centerimagesize/2)),(mScreenPoints.y-(centerimagesize/2)), null);
        super.draw(canvas,mapView,shadow);
        return true;
    }


} 

当前我的圈子的快照

-

任何建议都会有很大帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-10-19 00:39:29

问题

它在中间变暗的原因,是因为你画了四个圆圈,一个在另一个上面。当你画第二个圆圈时,两个人都用的那部分画了两次,所以颜色变暗了。当你画第三圈的时候,它会变得更暗.

溶液

如果你想要所有的圆圈都有相同的颜色,你应该对所有的圆圈使用Style.STROKE,除了较大的那个,它应该使用Style.FILL_AND_STROKE。这样你就只为小圆圈画线,在画大圆的时候填充所有的区域。

代码语言:javascript
复制
    mCirclePaint.setStyle(Style.STROKE); 
    for (int i = 1; i <= totalCircle-1; i ++) {  
        canvas.drawCircle(mScreenPoints.x,mScreenPoints.y, i*radius, mCirclePaint);  
    }  
    mCirclePaint.setStyle(Style.FILL_AND_STROKE); 
    canvas.drawCircle(mScreenPoints.x,mScreenPoints.y, totalCircle*radius, mCirclePaint);  

问候

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12963765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档