在Android中的Canvas上绘制自定义形状

时间:2012-12-20 21:03:23

标签: android android-canvas

我被这一点感到难过,所以我想我会在这里询问是否有人有任何指示。

简而言之,我有一个应用程序,我希望将多个复杂的形状绘制到画布上,然后将其绘制到屏幕上(我将按照此问题的答案建议在大画布周围进行平移: Android: Drawing and rotating on a canvas

我究竟如何创建自定义形状并在Android中的Canvas上的任意位置/旋转处绘制?

下面是一个简单自定义形状的示例,因为到目前为止我已尝试实现它(通常它们是在运行时创建的)

public class Symbol {
    public Bitmap b = Bitmap.createBitmap(500, 500, Bitmap.Config.ARGB_8888);
    public Symbol() {
        Canvas canvas = new Canvas(b);;
        Paint paint = new Paint();
        paint.setColor(Color.GRAY);
        paint.setStyle(Paint.Style.STROKE);
        paint.setTextSize(25);
        paint.setStrokeWidth(4);
        paint.setDither(true);                    
        paint.setStrokeJoin(Paint.Join.ROUND);    
        paint.setStrokeCap(Paint.Cap.ROUND);      
        paint.setAntiAlias(true);  
        String str="TestStr";
        canvas.drawText(str, 250,250, paint);
    }
}

1 个答案:

答案 0 :(得分:0)

哇,我嘲笑这个。

Android: canvas.drawBitmap performance issue

在我的主课程中添加这个使得一切都很开心,至少就这个简单的案例而言。:

Symbol s = new Symbol();
canvas.save();
canvas.rotate(5);
canvas.drawBitmap(s.b, 0,0, null);
canvas.restore();