2015-05-22 69 views
1

我添加了一個BARCHART到我的項目XML(佈局片斷如下圖):MPAndroidChart:圖表顯示不

<RelativeLayout 
    android:id="@+id/relative_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" > 

<com.github.mikephil.charting.charts.BarChart 
    android:id="@+id/chart" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<TextView 
    android:id="@+id/stepsTitle_textView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:textSize="28sp" 
    android:layout_below="@+id/chart" 
    android:text="STEPS TODAY" 
    android:layout_marginTop="8dp" /> 

我添加的數據在我的onCreate以圖表()方法:

chart = (BarChart) findViewById(R.id.chart); 
    chart.setLogEnabled(true); 

    chart.setDrawBarShadow(false); 
    chart.setDrawValueAboveBar(true); 

    chart.setDescription(""); 

    // if more than 60 entries are displayed in the chart, no values will be 
    // drawn 
    chart.setMaxVisibleValueCount(60); 

    List<String> usernamesArray = new ArrayList<String>(); 
    //ArrayList<Long> stepsArray = new ArrayList<Long>(); 
    List<BarEntry> entryArray = new ArrayList<BarEntry>(); 

    usernamesArray.add("a"); 
    usernamesArray.add("b"); 
    usernamesArray.add("c"); 

    BarEntry entry1 = new BarEntry(500, 0); 
    BarEntry entry2 = new BarEntry(500, 1); 
    BarEntry entry3 = new BarEntry(500, 2); 
    entryArray.add(entry1); 
    entryArray.add(entry2); 
    entryArray.add(entry3); 

    BarDataSet dataSet = new BarDataSet(entryArray, "Steps"); 
    dataSet.setColor(Color.rgb(104, 241, 175)); 
    BarData data = new BarData(usernamesArray, dataSet); 
    //graphRow.addView(chart); 
    //leaderboard_tableLayout.addView(graphRow); 
    //chart = new BarChart(this); 
    chart.setData(data); 
    chart.fitScreen(); 
    chart.setBackgroundColor(Color.WHITE); 
    chart.invalidate(); 

但是,圖表對象不顯示;實際上,在圖表所在的位置我什麼也看不到。

對我可能錯過的任何想法?如有必要,我當然可以提供更多細節。

謝謝!

+0

它僅顯示白屏?檢查此鏈接http://code.tutsplus.com/tutorials/add-charts-to-your-android-app-using-mpandroidchart--cms-23335 – Piyush

回答

1

所以事實證明,寬度和高度被設置爲0,所以我將它們從「match_parent」更改爲以dp爲單位的明確設置(分別爲400dp和200dp),並解決了問題。

+0

這是否意味着大小不會調整在不同的設備上? – Benitok

0

您可以使用以下代碼根據移動設備或平板電腦設備設置寬度。我只添加了幾個參數,您可以添加widtth &高度以使代碼更加智能化。

代碼 -

/* Start of setMyDevice() */ 
    public static void setMyDevice(int screen_density, XAxis xa) { 

     Log.e("Logger:Utility", "setMyDevice() Called"); 
     // int screen_density = (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK); 

     if (screen_density == Configuration.SCREENLAYOUT_SIZE_LARGE || screen_density == Configuration.SCREENLAYOUT_SIZE_XLARGE) { 
      //The device is a tablet or at least has the screen density of a tablet 
      xa.setLabelRotationAngle(-35); 
      xa.setDrawLabels(true); 
      xa.setTextSize(14); 
      Log.e("Logger:Utility", "setMyDevice-IT IS A TABLET"); 
     } else { 
      xa.setLabelRotationAngle(-55); 
      xa.setTextSize(10); 
      Log.e("Logger:Utility", "setMyDevice-IT IS A MOBILE"); 
     } 

    } 
    /* End of setMyDevice() */