Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中更改活动时,半饼图无法正确显示_Android_Charts - Fatal编程技术网

在android中更改活动时,半饼图无法正确显示

在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

我在第二个活动中使用画布创建半饼图,当我从第一个活动到第二个活动执行意图时,它显示的内容与上图相同,但当我使用第二个活动作为启动器时,它显示的是完美的半饼图

你有什么解决办法吗

这是onDraw方法:

@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);

}