在android中更改活动时,半饼图无法正确显示
我在第二个活动中使用画布创建半饼图,当我从第一个活动到第二个活动执行意图时,它显示的内容与上图相同,但当我使用第二个活动作为启动器时,它显示的是完美的半饼图 你有什么解决办法吗 这是onDraw方法:在android中更改活动时,半饼图无法正确显示,android,charts,Android,Charts,我在第二个活动中使用画布创建半饼图,当我从第一个活动到第二个活动执行意图时,它显示的内容与上图相同,但当我使用第二个活动作为启动器时,它显示的是完美的半饼图 你有什么解决办法吗 这是onDraw方法: @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); int height = pxToDp(canvas.getHeight() / 2); int width = pxToDp(c
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
int height = pxToDp(canvas.getHeight() / 2);
int width = pxToDp(canvas.getWidth() / 2);
RectF rectf=new RectF(dpToPx(width - 75), dpToPx(height - 75), dpToPx(width + 75), dpToPx(height + 75));
RectF inside_rectf=new RectF(dpToPx(width - 55), dpToPx(height - 55), dpToPx(width + 55), dpToPx(height + 56));
for (int i = 0; i < value_degree.length; i++)
{
if (i == 0)
{
paint.setColor(color.get(i));
paint.setAntiAlias(true);
canvas.drawArc(rectf, 180, value_degree[i], true, paint);
}
else
{
temp += value_degree[i - 1];
paint.setColor(color.get(i));
paint.setAntiAlias(true);
canvas.drawArc(rectf, temp, value_degree[i], true, paint);
}
}
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawArc(inside_rectf, 180, 180, true, paint);
paint.setColor(Color.parseColor("#000000"));
paint.setTextSize(dpToPx(17));
paint.setTextAlign(Paint.Align.CENTER);
int xPos = dpToPx((pxToDp(canvas.getWidth()) / 2));
int yPos = dpToPx((int) ((pxToDp(canvas.getHeight()) / 2) - ((pxToDp((int)paint.descent()) + pxToDp((int)paint.ascent())) / 2))) ;
canvas.drawText(value, xPos, yPos-50, paint);
paint.setColor(Color.parseColor("#000000"));
paint.setTextSize(dpToPx(11));
paint.setTextAlign(Paint.Align.CENTER);
canvas.drawText(tag, xPos, yPos, paint);
}
@覆盖
受保护的void onDraw(画布)
{
super.onDraw(帆布);
int height=pxToDp(canvas.getHeight()/2);
int-width=pxToDp(canvas.getWidth()/2);
RectF RectF=新的RectF(dpToPx(宽度-75)、dpToPx(高度-75)、dpToPx(宽度+75)、dpToPx(高度+75));
RectF inside_RectF=新的RectF(dpToPx(宽度-55)、dpToPx(高度-55)、dpToPx(宽度+55)、dpToPx(高度+56));
对于(int i=0;i@覆盖
受保护的void onDraw(画布)
{
super.onDraw(帆布);
浮子温度=180;
int height=pxToDp(canvas.getHeight()/2);
int-width=pxToDp(canvas.getWidth()/2);
RectF RectF=新的RectF(dpToPx(宽度-75)、dpToPx(高度-75)、dpToPx(宽度+75)、dpToPx(高度+75));
RectF inside_RectF=新的RectF(dpToPx(宽度-55)、dpToPx(高度-55)、dpToPx(宽度+55)、dpToPx(高度+56));
对于(int i=0;i
- 将“temp”变量设置为本地
请添加更多描述,而不是问题和图像好的,我添加了更多信息,希望您现在可以轻松理解问题!!!
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
float temp = 180;
int height = pxToDp(canvas.getHeight() / 2);
int width = pxToDp(canvas.getWidth() / 2);
RectF rectf=new RectF(dpToPx(width - 75), dpToPx(height - 75), dpToPx(width + 75), dpToPx(height + 75));
RectF inside_rectf=new RectF(dpToPx(width - 55), dpToPx(height - 55), dpToPx(width + 55), dpToPx(height + 56));
for (int i = 0; i < value_degree.length; i++)
{
Log.e("TempAngel",temp+"");
paint.setColor(color.get(i));
canvas.drawArc(rectf, temp, value_degree[i], true, paint);
temp += value_degree[i];
}
paint.setColor(Color.parseColor("#ffffff"));
canvas.drawArc(inside_rectf, 180, 180, true, paint);
paint.setColor(Color.parseColor("#000000"));
paint.setTextSize(dpToPx(17));
paint.setTextAlign(Paint.Align.CENTER);
int xPos = dpToPx((pxToDp(canvas.getWidth()) / 2));
int yPos = dpToPx((int) ((pxToDp(canvas.getHeight()) / 2) - ((pxToDp((int)paint.descent()) + pxToDp((int)paint.ascent())) / 2))) ;
canvas.drawText(value, xPos, yPos-50, paint);
paint.setColor(Color.parseColor("#000000"));
paint.setTextSize(dpToPx(11));
paint.setTextAlign(Paint.Align.CENTER);
canvas.drawText(tag, xPos, yPos, paint);
}