用箭头以编程方式绘制气泡

时间:2015-08-03 12:59:02

标签: java android android-xml android-drawable

我正在从Stackoverflow实现以下类

https://stackoverflow.com/a/20811323/1936925

但我需要像这样的泡泡

enter image description here

我正在努力,但不知道该怎么做。

为了获得上述可绘制,我需要做哪些编辑。

2 个答案:

答案 0 :(得分:0)

试试这个:

public Bitmap overlay(Bitmap image, String content) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inScaled = false;
        options.inPreferredConfig = Bitmap.Config.ARGB_8888;
        //My bg bitmap, use yours
        Bitmap background = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(MapActivity.context.getResources(), R.drawable.marker_base, options), marker_width, marker_height, true);
        //your red bitmap here
        Bitmap bmOverlay = Bitmap.createBitmap(background.getWidth(), background.getHeight(), background.getConfig());
        Canvas canvas = new Canvas(bmOverlay);
        Paint paint = new Paint();
        paint.setFilterBitmap(true);
        canvas.drawBitmap(background, new Matrix(), paint);
        canvas.drawBitmap(image, 3, 3, paint);

        if (content != null)
        {
            //Use your TextSize and Color and paddings
            paint = new Paint();
            paint.setColor(Color.BLACK);
            if (content.length() < 11)
                paint.setTextSize(13);
            else
                paint.setTextSize(10);
            //30 / 28, 17 - my paddings
            canvas.drawText(content, (content.length() < 11)?30:28, 17, paint);
        }
        return bmOverlay;
    }

答案 1 :(得分:0)

解决

mPointer.rLineTo(80, 0);
mPointer.rLineTo(0, 60);
mPointer.rLineTo(-(80), -60);
mPointer.close();