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%的恒星长度。
填充星星的任何填充值。
答案 0 :(得分:1)
此处的path
对象用于'大纲'这个明星。如果要完全绘制它,则可以将样式设置为FILL和STROKE。但你不能做部分画它。您需要创建另一个drawBitmap()
对象并将绘制设置为FILL并绘制它。理想情况下,您将分别绘制轮廓和填充。
这很简单。你已经完成了一半。您可以重复使用为“填充路径”的“大纲”路径所做的计算。
<强>更新强>: 如果这是一种评级类型的东西,那么你需要动态增加或减少填充。如果是这样的话。您可以将FILL绘制为RECTANGLE,然后使用星形大纲剪辑它。然后你只需要增加或减少矩形的宽度。
此处有更多信息:How to mask out a simple region when painting in Android?
更新:如果它是您想要的部分 PICTURE ,那么您必须创建该图片的位图,然后使用{{1}绘制它}。然后使用clipRegion()
剪切该区域,使其看起来像是部分填充的。