2017-08-12 111 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」 在局部變量。