使用canvas.drawLine创建onDraw填充形状

时间:2011-02-02 14:35:28

标签: android paint ondraw

我画了4行(canvas.drawLine)以绘制一个矩形。是否有可能填充矩形区域? (我知道android有一个rectDraw。我只是好奇心)

提前感谢。


好的..我还创建了路径段的路径。以下代码..请问您能解释内部区域的填充方式吗?

    `Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);            
     paint.setStrokeWidth(2);
     paint.setColor(android.graphics.Color.RED);
     paint.setStyle(Paint.Style.FILL_AND_STROKE);
     paint.setAntiAlias(true);
     path.reset();
     path.setFillType(Path.FillType.INVERSE_EVEN_ODD);      
     path.moveTo(mPin[0].getX() + 10, mPin[0].getY() + 10);
     path.lineTo(mPin[1].getX() + 10, mPin[1].getY() + 10);

     path.moveTo(mPin[1].getX() + 10, mPin[1].getY() + 10);
     path.lineTo(mPin[3].getX() + 10, mPin[3].getY() + 10);

     path.moveTo(mPin[3].getX() + 10, mPin[3].getY() + 10);
     path.lineTo(mPin[2].getX() + 10, mPin[2].getY() + 10);

     path.moveTo(mPin[2].getX() + 10, mPin[2].getY() + 10);
     path.lineTo(mPin[0].getX() + 10, mPin[0].getY() + 10);
     paint.setShader(new LinearGradient(0, 0, 0, getHeight(), Color.BLACK, Color.WHITE, Shader.TileMode.MIRROR));
     c.drawPath(path, paint);`

2 个答案:

答案 0 :(得分:3)

不要使用drawLine但是,创建Path对象:

class NewsArticle extends Model
{
    protected $table = 'news';
    public $timestamps = false;
    protected $casts = [
        'Actual' => 'boolean',
    ];
}

答案 1 :(得分:2)

如果您将线段绘制为路径,则可以填充矩形。但是,为了填补由四个未连接但相交的线段限定的区域,我认为你必须编写自己的例程。搜索“洪水填充”或“种子填充”。