android – 如何使用Picasso为Google Marker自定义图标创建语音泡泡边框?

android – 如何使用Picasso为Google Marker自定义图标创建语音泡泡边框?,第1张

概述如何使用Picasso和Google Marker Custom Icon来实现此功能? 我知道如何将Picasso用于图像,但我不知道如何在底部和边框上添加“标记图标”. Picasso.with(mContext) .load(url) .resize(250, 250) .centerInside() 如何使用Picasso和Google Marker Custom Icon来实现此功能?

我知道如何将Picasso用于图像,但我不知道如何在底部和边框上添加“标记图标”.

Picasso.with(mContext)            .load(url)            .resize(250,250)            .centerInsIDe()            .into(new Target() {                @OverrIDe                public voID onBitmapLoaded(Bitmap bitmap,Picasso.LoadedFrom from) {                    Marker driver_marker = mMap.addMarker(new MarkerOptions()                            .position(new LatLng(Double.parseDouble(lat),Double.parseDouble(lng)))                            .icon(BitmapDescriptorFactory.fromBitmap(bitmap))                            .Title(name)                            .snippet(address)                    );                    @OverrIDe                    public voID onBitmapFailed (Drawable errorDrawable){                    }                    @OverrIDe                    public voID onPrepareLoad (Drawable placeHolderDrawable){                    }                });            }

我在onBitmapLoaded中添加了这个:

Paint paint = new Paint();    paint.setcolor(color.YELLOW);    paint.setstrokeWIDth(10);    paint.setShadowLayer(5,1,color.RED);    Canvas canvas = new Canvas(bitmap);    canvas.drawline(0,canvas.getWIDth(),paint);    canvas.drawline(0,canvas.getHeight(),paint);    canvas.drawline(canvas.getWIDth(),paint);

这似乎增加了边框,但我如何用Canvas添加倒金字塔?谢谢,在那之后,我已经完成了! :d

解决方法 这是我工作的转型课程.它缺少角落半径和任何渐变,但底部有倒金字塔,它应该是一个很好的起点.

这是转换类:

import androID.graphics.Bitmap;import androID.graphics.BitmapShader;import androID.graphics.Canvas;import androID.graphics.color;import androID.graphics.Paint;import androID.graphics.Path;import androID.graphics.RectF;import androID.graphics.Shader;public class Bubbletransformation implements com.squareup.picasso.transformation {    private static final int outermargin = 40;    private final int margin;  // dp    // margin is the board in dp    public Bubbletransformation(final int margin) {        this.margin = margin;    }    @OverrIDe    public Bitmap transform(final Bitmap source) {        Bitmap output = Bitmap.createBitmap(source.getWIDth(),source.getHeight(),Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(output);        Paint paintborder = new Paint();        paintborder.setcolor(color.CYAN);        paintborder.setstrokeWIDth(margin);        canvas.drawRoundRect(new RectF(outermargin,outermargin,source.getWIDth() - outermargin,source.getHeight() - outermargin),paintborder);        Paint trianglePaint = new Paint(Paint.ANTI_AliAS_FLAG);        trianglePaint.setstrokeWIDth(2);        trianglePaint.setcolor(color.CYAN);        trianglePaint.setStyle(Paint.Style.FILL_AND_stroke);        trianglePaint.setAntiAlias(true);        Path triangle = new Path();        triangle.setFillType(Path.FillType.EVEN_ODD);        triangle.moveto(outermargin,source.getHeight() / 2);        triangle.lineto(source.getWIDth()/2,source.getHeight());        triangle.lineto(source.getWIDth()-outermargin,source.getHeight()/2);        triangle.close();        canvas.drawPath(triangle,trianglePaint);        final Paint paint = new Paint();        paint.setAntiAlias(true);        paint.setShader(new BitmapShader(source,Shader.TileMode.CLAMP,Shader.TileMode.CLAMP));        canvas.drawRoundRect(new RectF(margin+outermargin,margin+outermargin,source.getWIDth() - (margin + outermargin),source.getHeight() - (margin + outermargin)),paint);        if (source != output) {            source.recycle();        }        return output;    }    @OverrIDe    public String key() {        return "rounded";    }}

对毕加索的呼吁:

Picasso.with(getActivity())            .load(user_photo_url)            .resize(250,250)            .centerCrop()            .transform(new Bubbletransformation(20))            .into(mTarget);

目标:

Target mTarget = new Target() {    @OverrIDe    public voID onBitmapLoaded(Bitmap bitmap,Picasso.LoadedFrom from) {        Marker driver_marker = mMap.addMarker(new MarkerOptions()                        .position(latLng)                        .icon(BitmapDescriptorFactory.fromBitmap(bitmap))                        .Title("test")                        .snippet("test address")        );    }    @OverrIDe    public voID onBitmapFailed(Drawable errorDrawable) {        Log.d("picasso","onBitmapFailed");    }    @OverrIDe    public voID onPrepareLoad(Drawable placeHolderDrawable) {    }};

结果:

总结

以上是内存溢出为你收集整理的android – 如何使用Picasso为Google Marker自定义图标创建语音泡泡边框?全部内容,希望文章能够帮你解决android – 如何使用Picasso为Google Marker自定义图标创建语音泡泡边框?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1130493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存