2017-08-12 110 views
-1

This is second activity screen which display semi pie chart半饼图不显示在机器人

This is result when second activity use as lauancher activity

正确时活性变化我创建使用在第二活动帆布,当我执行从第一活动到第二活动意图它显示与上述相同的半饼图图像,但如果当我使用第二个活动作为发射器,它显示完美的半饼图。

那么你有什么解决方案?

这是的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); 
} 
+0

请添加更多描述,而不是问题和图片 – akhilesh0707

+0

okey我添加更多的信息,我希望现在你可以很容易地理解问题! – user6807363

回答

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

} 
  • 组 “TEMP” 在局部变量。