如何在android中部分填充明星?

时间:2015-10-15 04:03:22

标签: android android-layout canvas draw paint

Fill star with partially Picture

看上面的图片。 我的示例代码在

下面

`protected void onDraw(Canvas canvas)     {         mid = getWidth()/ 2;         int a = 100,b = 100;         min = Math.min(a,b);         脂肪= min / 17;         half = min / 2;         rad = 5;         mid = mid - half;

     paint = new Paint();
    paint.setColor(Color.BLUE);
    paint.setStyle(Paint.Style.STROKE);
    Path path = new Path();
    path.reset();
    paint.setStyle(Paint.Style.FILL);


 // top left
    path.moveTo(half * 0.5f, half * 0.84f);

 // top right
    path.lineTo(half * 1.5f, half * 0.84f);

 // bottom left
    path.lineTo(half * 0.68f, half * 1.45f);

 // top tip
    path.lineTo(half * 1.0f, half * 0.5f);

// bottom right
    path.lineTo(half * 1.32f, half * 1.45f);

 // top left
    path.lineTo(half * 0.5f, half * 0.84f);

    path.close();

canvas.drawPath(path, paint);
    super.onDraw(canvas);

}` 

我的问题是我们如何在android中部分填充明星?

我希望这个填充选项不仅有半填充星。

而且,如果我们认为全星长度是100%。

我们必须填充20%的恒星长度,或者我们必须填充50%的恒星长度,否则我们必须填充70%的恒星长度。

填充星星的任何填充值。

1 个答案:

答案 0 :(得分:1)

此处的path对象用于'大纲'这个明星。如果要完全绘制它,则可以将样式设置为FILL和STROKE。但你不能做部分画它。您需要创建另一个drawBitmap()对象并将绘制设置为FILL并绘制它。理想情况下,您将分别绘制轮廓和填充。

这很简单。你已经完成了一半。您可以重复使用为“填充路径”的“大纲”路径所做的计算。

<强>更新: 如果这是一种评级类型的东西,那么你需要动态增加或减少填充。如果是这样的话。您可以将FILL绘制为RECTANGLE,然后使用星形大纲剪辑它。然后你只需要增加或减少矩形的宽度。

此处有更多信息:How to mask out a simple region when painting in Android?

更新:如果它是您想要的部分 PICTURE ,那么您必须创建该图片的位图,然后使用{{1}绘制它}。然后使用clipRegion()剪切该区域,使其看起来像是部分填充的。