【发布时间】:2014-07-08 23:17:42
【问题描述】:
代码:
public final void SetBitmapImage(Bitmap paramBitmap, int color, float percentage)
{
float f = percentage * -360.0F;
int i = paramBitmap.getWidth();
int j = paramBitmap.getHeight();
Paint localPaint1 = new Paint(ANTI_ALIAS_FLAG);
Paint localPaint2 = new Paint(ANTI_ALIAS_FLAG);
Paint localPaint3 = new Paint(ANTI_ALIAS_FLAG);
Bitmap localBitmap1 = Bitmap.createBitmap(i, j, Bitmap.Config.ARGB_8888);
Canvas localCanvas1 = new Canvas(localBitmap1);
localCanvas1.rotate(-90.0F, i / 2.0F, j / 2.0F);
RectF localRectF = new RectF(0.0F, 0.0F, i, j);
localPaint1.setStrokeWidth(2.0F);
localPaint1.setStyle(Paint.Style.FILL);
localPaint2.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
Bitmap localBitmap2 = paramBitmap; // this should include color I think but don't know how
localCanvas1.drawArc(localRectF, 0.0F, f, true, localPaint1);
Bitmap localBitmap3 = Bitmap.createBitmap(localBitmap1.getWidth(), localBitmap1.getHeight(), Bitmap.Config.ARGB_8888);
Canvas localCanvas2 = new Canvas(localBitmap3);
localCanvas2.drawBitmap(paramBitmap, 0.0F, 0.0F, localPaint3);
localCanvas2.drawBitmap(localBitmap1, 0.0F, 0.0F, localPaint2);
Bitmap localBitmap4 = Bitmap.createBitmap(localBitmap2.getWidth(), localBitmap2.getHeight(), localBitmap2.getConfig());
Canvas localCanvas3 = new Canvas(localBitmap4);
localCanvas3.drawBitmap(localBitmap2, new Matrix(), null);
localCanvas3.drawBitmap(localBitmap3, 0.0F, 0.0F, null);
localBitmap2.recycle();
localBitmap3.recycle();
localBitmap1.recycle();
setImageBitmap(localBitmap4);
}
但图像仍然相同。我希望图像的 70% 保持白色,30% 保持红色。
我认为Bitmap localBitmap2 有问题。
Bitmap localBitmap2 = paramBitmap; // this should include color I think but don't know how
应该是这样的:
Bitmap localBitmap2 = Something(paramBitmap, color); which will set the color
【问题讨论】:
-
我已经检查了所有内容,但找不到解决方案。我不需要渐变效果
-
您使用的是什么类型的图表 - 条形图/饼图?