520悶在家裡做圖( 安卓統計圖MPAndroidChart開發) - IT人

文章推薦指數: 80 %
投票人數:10人

Android 統計 ... ScatterChart(帶有正方形,三角形,圓形等) ... 餅圖. 與其他圖表型別不同,PieChart彙整採用PieEntry物件形式的資料。

Togglenavigation IT人 IT人 520悶在家裡做圖(安卓統計圖MPAndroidChart開發) 東小東發表於 2020-05-21 Android 統計 有些時候覺得一個人挺好的,可以更自由安排自己的時間; 有些時候覺得有個人挺好的,很多事情一個人做起來太沒意思了,縱使心中澎湃,傾聽的獨有自己。

廢話少說,直接上圖 MPAndroidChart是啥 一個可以在安卓上實現各種資料統計圖的開源專案。

來看看它都能顯示啥圖: LineChart(帶有圖例,簡單設計)  LineChart(帶有圖例,簡單設計)  LineChart(立方線)  LineChart(漸變填充)      條形圖(帶有圖例,簡單設計) 條形圖(分組資料集) 水平條形圖 組合圖(在這種情況下為條形圖和折線圖) PieChart(帶有選擇項,...)              ScatterChart(帶有正方形,三角形,圓形等) CandleStickChart(用於財務資料) BubbleChart(氣泡覆蓋的區域表示yValue)  RadarChart(蜘蛛網路圖表)                使用前的準備工作 需要先將庫下載到我們的工程中,新增依賴後同步一下即可自動下載 新增依賴 repositories{ maven{url'https://jitpack.io'} } dependencies{ implementation'com.github.PhilJay:MPAndroidChart:v3.1.0' }  新增檢視檔案 com.github.mikephil.charting.charts.PieChart裡的PieChart可以為LineChart,BarChart,ScatterChart,CandleStickChart,PieChart,BubbleChartorRadarChart,這些要根據實際情況決定 事件相關API 該庫允許您完全自定義與圖表檢視的可能的觸控(和手勢)互動,並通過回撥方法對互動做出反應。

啟用/禁用互動 setTouchEnabled(booleanenabled):允許啟用/禁用與圖表的所有可能的觸控互動。

setDragEnabled(booleanenabled):啟用/禁用圖表的拖動(平移)。

setScaleEnabled(booleanenabled):啟用/禁用兩個軸上圖表的縮放。

setScaleXEnabled(booleanenabled):啟用/禁用x軸縮放。

setScaleYEnabled(booleanenabled):啟用/禁用y軸縮放。

setPinchZoom(booleanenabled):如果設定為true,則啟用縮放。

如果禁用,則可以分別縮放x軸和y軸。

setDoubleTapToZoomEnabled(booleanenabled):將其設定為false可禁止通過雙擊來放大圖表。

注意:這裡很多事件不支援餅狀圖,比如縮放、平移、放大 觸控圖表時運動/減速 setDragDecelerationEnabled(booleanenabled):如果設定為true,則在觸控後圖表將繼續滾動。

預設值:true。

setDragDecelerationFrictionCoef(floatcoef):減速摩擦係數[0;1]間隔,較高的值表示速度將緩慢降低,例如,如果將其設定為0,它將立即停止。

1是無效值,並將自動轉換為0.9999。

事件監聽介面 1dongxiaodongchart=findViewById(R.id.chart); 2//觸控事件監聽 3dongxiaodongchart.setOnChartGestureListener(newOnChartGestureListener(){ 4//開始觸控手勢時回撥 5@Override 6publicvoidonChartGestureStart(MotionEventme,ChartTouchListener.ChartGesturelastPerformedGesture){ 7//Toast.makeText(MainActivity.this,"東小東:觸控事件開始",Toast.LENGTH_SHORT).show(); 8} 9//結束觸控手勢時回撥 10@Override 11publicvoidonChartGestureEnd(MotionEventme,ChartTouchListener.ChartGesturelastPerformedGesture){ 12//Toast.makeText(MainActivity.this,"東小東:觸控事件結束",Toast.LENGTH_SHORT).show(); 13} 14//長按圖表時回撥 15@Override 16publicvoidonChartLongPressed(MotionEventme){ 17Toast.makeText(MainActivity.this,"東小東:圖表長按",Toast.LENGTH_SHORT).show(); 18} 19//雙擊圖表時回撥 20@Override 21publicvoidonChartDoubleTapped(MotionEventme){ 22Toast.makeText(MainActivity.this,"東小東:圖表被雙擊",Toast.LENGTH_SHORT).show(); 23} 24//單擊圖表時進行回撥 25@Override 26publicvoidonChartSingleTapped(MotionEventme){ 27Toast.makeText(MainActivity.this,"東小東:圖表單擊",Toast.LENGTH_SHORT).show(); 28} 29//圖幅描述變化 30/*引數: 31x的速度 32y的速度 33*/ 34@Override 35publicvoidonChartFling(MotionEventme1,MotionEventme2,floatvelocityX,floatvelocityY){ 36Toast.makeText(MainActivity.this,"東小東:圖幅描述變化",Toast.LENGTH_SHORT).show(); 37} 38//縮放圖表時的回撥 39/*引數: 40scaleXx軸上的比例因子 41scaleYy軸上的比例因子 42*/ 43@Override 44publicvoidonChartScale(MotionEventme,floatscaleX,floatscaleY){ 45Toast.makeText(MainActivity.this,"東小東:圖表正在縮放中。









",Toast.LENGTH_SHORT).show(); 46} 47//通過拖動手勢移動/轉換圖表時的回撥 48/*引數: 49dX在x軸上的平移距離 50dY在y軸上的平移距離 51*/ 52@Override 53publicvoidonChartTranslate(MotionEventme,floatdX,floatdY){ 54Toast.makeText(MainActivity.this,"東小東:圖表正在移動中。









",Toast.LENGTH_SHORT).show(); 55} 56}); 動畫製作API animateX(intdurationMillis):在水平軸上對圖表值進行動畫處理,這意味著圖表將在指定的時間內從左到右建立。

animateY(intdurationMillis):對垂直軸上的圖表值進行動畫處理,這意味著圖表將在指定的時間內從下到上建立。

animateXY(intxDuration,intyDuration):對水平和垂直軸都進行動畫處理,從而形成左/右底部/頂部 上面三個函式還可以在最後新增一個引數:Easing.EasingOptionoption 該庫允許您將漂亮的緩動功能應用於動畫。

您可以在以下靜態預定義之間進行選擇Easing.EasingOption: publicenumEasingOption{ Linear, EaseInQuad, EaseOutQuad, EaseInOutQuad, EaseInCubic, EaseOutCubic, EaseInOutCubic, EaseInQuart, EaseOutQuart, EaseInOutQuart, EaseInSine, EaseOutSine, EaseInOutSine, EaseInExpo, EaseOutExpo, EaseInOutExpo, EaseInCirc, EaseOutCirc, EaseInOutCirc, EaseInElastic, EaseOutElastic, EaseInOutElastic, EaseInBack, EaseOutBack, EaseInOutBack, EaseInBounce, EaseOutBounce, EaseInOutBounce, } 示例 //預設效果動畫 dongxiaodongchart=findViewById(R.id.chart); dongxiaodongchart.animateX(2000); //新增固定效果動畫 dongxiaodongchart=findViewById(R.id.chart); dongxiaodongchart.animateX(2000,Easing.EaseInOutQuad);  軸與網格線API 軸可以分為X和Y軸,其x和y軸的例項都可以使用下面的效果自定義 X軸: 相關函式 setLabelRotationAngle(floatangle);設定x軸刻度的顯示的旋轉度數 setPosition(XAxisPositionpos);設定X軸在圖表中的顯示位置,TOP(圖表上面,刻度在表格外),BOTTOM(圖表下面,刻度在表格外),BOTH_SIDED(圖表上下都顯示),TOP_INSIDE(圖表上面,刻度在表格內)或BOTTOM_INSIDE(圖表下面,刻度在表格內) 使用: dongxiaodongchart=findViewById(R.id.chart); XAxisxAxis=dongxiaodongchart.getXAxis();//獲取x軸的例項 xAxis.setLabelRotationAngle(-45);//刻度旋轉-45度 xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//只在圖表下面顯示 Y軸: 獲取y軸左右例項 dongxiaodongchart=findViewById(R.id.chart); YAxisleftAxis=dongxiaodongchart.getAxisLeft(); YAxisrightAxis=dongxiaodongchart.getAxisRight(); 效果 控制應繪製(軸的)哪些部分 setEnabled(booleanenabled):設定啟用或禁用軸。

如果禁用,則無論任何其他設定,都不會繪製軸的任何部分。

setDrawLabels(booleanenabled):將其設定為true以啟用繪製軸的標籤,(刻度) setDrawAxisLine(booleanenabled):如果是否繪製沿軸的線(軸線),則將其設定為true。

setDrawGridLines(booleanenabled):將其設定為true以啟用繪製軸的網格線。

自定義軸範圍(最小/最大) setAxisMaximum(floatmax):為此軸設定自定義最大值。

如果設定,則根據提供的資料將不會自動計算該值。

resetAxisMaximum():呼叫此命令可撤消先前設定的最大值。

這樣,您將再次允許軸自動計算其最大值。

setAxisMinimum(floatmin):為此軸設定一個自定義最小值。

如果設定,則根據提供的資料將不會自動計算該值。

resetAxisMinimum():呼叫此命令可撤消先前設定的最小值。

這樣,您將再次允許軸自動計算其最小值。

setStartAtZero(booleanenabled):已棄用–使用setAxisMinValue(...)或setAxisMaxValue(...)代替。

setInverted(booleanenabled):如果設定為true,則該軸將反轉,這意味著最大值將位於底部,最小值位於頂部。

setSpaceTop(floatpercent):設定圖表中最大值與軸上最高值的頂部間距(以總軸範圍的百分比為單位)。

setSpaceBottom(floatpercent):設定圖表中最小值與軸上最小值的底部間距(以總軸範圍的百分比為單位)。

setShowOnlyMinMax(booleanenabled):如果啟用,則此軸將僅顯示其最小值和最大值。

這將忽略/覆蓋已定義的標籤計數(如果未強制執行)。

setLabelCount(intcount,booleanforce):設定y軸的標籤數。

請注意,此數字不是固定的(如果force==false),只能近似。

如果啟用了力(true),則會繪製確切的指定標籤數-這會導致軸上的數字不均勻。

setPosition(YAxisLabelPositionpos):設定應繪製軸標籤的位置。

INSIDE_CHART或OUTSIDE_CHART。

setGranularity(floatgran):設定y軸值之間的最小間隔。

在放大到為軸設定的小數位數不再允許在兩個軸值之間進行區分的點時,可以使用此方法來避免值重複。

setCenterAxisLabels(true);設定刻度值居中於y軸值之間的最小間隔 setGranularityEnabled(booleanenabled):啟用放大功能,該功能限制放大時y軸的間隔。

預設值:false 造型/修改軸樣式 setTextColor(intcolor):設定軸標籤(刻度)的顏色。

setTextSize(floatsize):設定軸標籤的文字大小。

setTypeface(Typefacetf):設定Typeface軸標籤的自定義。

setGridColor(intcolor):設定該軸的網格線的顏色。

setGridLineWidth(floatwidth):設定該軸的網格線的寬度。

setAxisLineColor(intcolor):設定該軸的軸線的顏色。

setAxisLineWidth(floatwidth):設定該軸的軸線的寬度。

enableGridDashedLine(floatlineLength,floatspaceLength,floatphase):使用此繪製網格虛線,允許以虛線模式繪製網格線,例如“-––––-”。

“lineLength”控制線段的長度,“spaceLength”控制線之間的間距,“phase”控制起點。

設定資料API 如果要向圖表新增值(資料),則必須通過 publicvoidsetData(ChartDatadata){...} 方法。

所述基類ChartData(ChartData)類封裝被渲染期間所需圖表的所有資料和資訊。

ChartData是所有資料類(子類),列如的基類LineData,BarData...等等 折線圖 LineDataSet物件存放一條線的相關內容 publicLineDataSet(Listentries,Stringlabel){...} LineDataSet需要一個List型別為Entry和的String來描述LineDataSet和,並將其作為用於的標籤Legend 其中Entry是x軸和y值在圖表中的條目 publicEntry(floatx,floaty){...}  條形圖 可以為設定資料的方式BarChart與相似LineChart。

主要區別在於需要用於設定資料的資料物件(例如BarEntry代替Entry)。

除此之外,BarChart還有不同的樣式選項。

分組條形圖 從v3.0.0版本開始,MPAndroidChart支援顯式分組的繪製條(在這種情況下,庫將處理x位置)或使用者定義的圖形,這意味著使用者可以通過更改繪製條的x位置來將其放置在所需的任何位置。

積木條形圖 堆疊的BarChart設定與普通設定非常相似,只是建立BarChart單個BarEntry物件的方式不同。

如果是堆疊式鋼筋,BarEntry則必須使用的其他建構函式: publicBarEntry(floatx,float[]values){...} 此建構函式允許values為y軸提供多個(陣列),它們表示每個條形的“堆疊”的值,陣列中的一個值是堆疊的一部分。

考慮以下示例: BarEntrystackedEntry=newBarEntry(0f,newfloat[]{10,20,30}); 它BarEntry的x軸位置為0f,由三個值的堆疊組成,在y軸上的“高度”分別為“10”,“20”和“30”,累積的條形值/高度為60(10+20+30)。

餅圖 與其他圖表型別不同,PieChart彙整採用PieEntry物件形式的資料。

這些物件的建構函式如下所示: publicPieEntry(floatvalue,Stringlabel){...} 建構函式的第一個引數用於實際的“值”,該值應在中繪製為扇形PieChart。

第二個String引數稱為“標籤” 資料單位 LargeValueFormatter:可用於格式化大於“1.000”的大值。

它將諸如“1.000”的值轉換為“1k”,“1.000.000”將為“1m”(百萬),“1.000.000.000”將為“1b”(十億),諸如一萬億的值將為“1t””。

PercentFormatter:用於在每個帶有1個小數位的值之後顯示一個“%”符號。

對於尤其有用PieChart。

50->50.0% 資料物件樣式 圖內文字 setValueTextColor(intcolor):設定所有DataSets此資料物件包含的值文字的顏色(繪製值標籤的顏色)。

setValueTextColors(Listcolors):設定用作值顏色的顏色列表 setValueTextSize(floatsize):設定所有DataSets此資料物件包含的值文字的大小(以dp為單位) setDrawValues(booleanenabled):啟用/禁用所有DataSets此資料物件包含的圖形值(值文字) 資料查詢 getDataSetByIndex(intindex):返回DataSet資料物件DataSet列表中給定索引處的物件。

contains(Entryentry):檢查此資料物件是否包含指定的Entry。

如果是,則返回true,否則返回false。

注意:此功能的效能相當差,在效能關鍵的情況下不要過度使用。

contains(TdataSet):如果此資料物件包含提供的值DataSet,則返回true,否則返回false。

資料刪除 clearValues():清除所有DataSet物件的資料物件,從而清除所有物件Entries。

不刪除提供的x值 突出線上 setHighlightEnabled(booleanenabled):將其設定為true以允許通過觸控突出顯示該ChartData物件和所有底層物件DataSets。

setDrawVerticalHighlightIndicator(booleanenabled):啟用/禁用垂直高亮指示線。

如果禁用,則不會繪製指示器。

setDrawHorizontalHighlightIndicator(booleanenabled):啟用/禁用水平高光指示線。

如果禁用,則不會繪製指示器。

setHighLightColor(intcolor);設定指示線的顏色 setHighlightLineWidth(floatwidth)設定指示線的線寬,以dp設定高亮線(十字線)的寬度 圖線條(線圖) setLineWidth(floatwidth):為此資料集設定線寬(最小值=0.2f,最大值=10f);預設值1f注意:較細的線==更好的效能,較粗的線==效能差 setColor(intcolor);線上圖中可以設定線的顏色 填充區域 線圖的填充必須要setDrawFilled設定為true setDrawFilled(booleanfilled):將DataSet繪製為實心(曲面,面積),而不僅僅是將其繪製為直線時,將其設定為true,禁用此設定將提高效能。

請注意,此方法使用canvas.clipPath(...)繪製填充區域的方法。

對於API級別<18(Android4.3)的裝置,應關閉圖表的硬體加速-參見此處。

預設值:false setFillColor(intcolor):設定用於填充線條表面的顏色。

setFillAlpha(intalpha):設定用於填充線表面(0-255)的Alpha值(透明度),預設值:85、255=完全不透明,0=完全透明 setFillDrawable(Drawabled):設定一個Drawable應覆蓋填充區域的。

這也允許使用漸變。

LineDataSet(類LineDataSet) setCircleRadius(floatsize):設定圓形值指示器的大小(半徑),預設大小=4f setDrawCircles(booleanenabled):將其設定為true可以為此繪製圓形指示器LineDataSet,預設為true setDrawCubic(booleanenabled):如果設定為true,則折線圖將以立方樣式而不是線性樣式繪製。

這會對效能產生負面影響!預設值:false setCubicIntensity(floatintensity):設定立方線的強度(如果啟用)。

最大值=1f=非常立方,最小值=0.05f=低立方效應,預設值:0.2f setCircleColor(intcolor):設定此資料集所有圓圈指示器應具有的顏色。

setCircleColors(Listcolors):設定其外圓LineDataSet應具有的顏色。

還有其他各種設定圓形顏色的方法。

setCircleColorHole(intcolor):設定直線圓(孔)的內圓的顏色。

setDrawCircleHole(booleanenabled):將其設定為true以允許在此資料集的每個圓中繪製孔。

如果設定為false,則將繪製填充的圓圈(無孔)。

enableDashedLine(floatlineLength,floatspaceLength,floatphase):允許以虛線模式繪製線條,例如“-––––-”。

“lineLength”是線段的長度,“spaceLength”是線段之間的間隔的長度,“phase”是偏移量,以度為單位(通常使用0) BarDataSet(類BarDataSet) setBarSpacePercent(floatpercent):設定條之間的間隔,以條總寬度的百分比表示。

setBarShadowColor(intcolor):設定用於繪製條形陰影的顏色。

條形陰影是條形後面的表面,指示最大值。

不要用它getResources().getColor(...)來設定它。

或者Color.rgb(...)。

setHighLightAlpha(intalpha):設定用於繪製突出顯示指示條的Alpha值(透明度)。

最小值=0(完全透明),最大值=255(完全不透明)。

setStackLabels(String[]labels):為標籤設定不同的條形紙疊(如果有的話)。

PieDataSet(類PieDataSet) setSliceSpace(floatdegrees):設定dp中的餅圖切片之間留出的空間,預設值:0–>無空間,最大20,最小0(無空間) setSelectionShift(floatshift):設定此資料集的突出顯示的餅圖切片與圖表中心的距離,預設為12f 其它樣式 invalidate():在圖表上呼叫此方法將重新整理(重畫)它。

為了使圖表上執行的更改生效,這是必需的。

notifyDataSetChanged():讓圖表知道其基礎資料已更改,並執行所有必要的重新計算(偏移量,圖例,最大值,最小值等)。

特別是在動態新增資料時,這是必需的。

setBackgroundColor(intcolor):設定將覆蓋整個圖表檢視的背景顏色。

另外,可以.xml在佈局檔案中通過設定背景色。

setDescription(Stringdesc):設定描述文字,該文字顯示在圖表的右下角。

setDescriptionColor(intcolor):設定說明文字的顏色。

setDescriptionPosition(floatx,floaty):在螢幕上以畫素為單位設定描述文字的自定義位置。

setDescriptionTypeface(Typefacet):設定Typeface用於繪製描述文字。

setDescriptionTextSize(floatsize):設定說明文字的大小(以畫素為單位),最小6f,最大16f。

setNoDataText(Stringtext):設定圖表為空時應顯示的文字。

setDrawGridBackground(booleanenabled):如果啟用,將在圖表繪圖區域後面繪製背景矩形。

setGridBackgroundColor(intcolor):設定繪製網格背景的顏色。

setDrawBorders(booleanenabled):啟用/禁用繪製圖表邊框(圖表周圍的線)。

setBorderColor(intcolor):設定圖表邊框線的顏色。

setBorderWidth(floatwidth):以dp設定圖表邊界線的寬度。

setMaxVisibleValueCount(intcount):設定圖表上最大可見繪製值標籤的數量。

這僅在setDrawValues()啟用時生效。

線圖,條形圖,散點圖,蠟燭圖和氣泡圖 setAutoScaleMinMaxEnabled(booleanenabled):用於指示是否啟用y軸自動縮放的標誌。

如果啟用,則每當視口更改時,y軸就會自動調整為當前x軸範圍的最小和最大y值。

對於顯示財務資料的圖表而言,這尤其有趣。

預設值:false setKeepPositionOnRotation(booleanenabled):設定方向更改後圖表是否應保持其位置(縮放/滾動)。

預設值:false 條形圖 setDrawValueAboveBar(booleanenabled):如果設定為true,則所有值均繪製在其條形上方,而不是其頂部下方。

setDrawBarShadow(booleanenabled):如果設定為true,則在每個條後面繪製一個灰色區域,指示最大值。

啟用他的功能會使效能降低約40%。

setDrawValuesForWholeStack(booleanenabled):如果設定為true,則將分別繪製堆疊條形圖的所有值,而不僅僅是總和。

setDrawHighlightArrow(booleanenabled):將其設定為true可以在突出顯示時在每個欄上方繪製突出顯示箭頭 餅形圖 setDrawSliceText(booleanenabled):將其設定為true可將x值文字繪製到餅圖中。

setUsePercentValues(booleanenabled):如果啟用此功能,則圖表內的值將以百分比而不是原始值繪製。

ValueFormatter然後,以百分比形式提供為to格式提供的值。

setCenterText(SpannableStringtext):設定在PieChart中心繪製的文字。

較長的文字將被自動“包裝”,以避免被剪下成餅狀。

setCenterTextRadiusPercent(floatpercent):設定中心文字的邊框的矩形半徑,以餅孔預設1.f(100%)的百分比表示。

setHoleRadius(floatpercent):以最大半徑的百分比(最大值=整個圖表的半徑)設定餅圖中心的孔的半徑,預設為50% setTransparentCircleRadius(floatpercent):以最大半徑的百分比(最大值=整個圖表的半徑)設定在圓形圖中繪製的孔旁邊的透明圓的半徑,預設為55%->表示比中心孔大5%預設 setTransparentCircleColor(intcolor):設定透明圓圈的顏色。

setTransparentCircleAlpha(intalpha):設定透明圓圈應具有的透明度(0-255)。

setMaxAngle(floatmaxangle):設定用於計算扇形圓的最大角度。

360f表示已滿PieChart,180f表示半餅圖。

預設值:360f 圖例 圖例是每個資料物件的指示,如餅狀圖中每個顏色的扇區指示是有圖例完成的 預設情況下,所有圖表型別都支援圖例,並且在為圖表設定資料後將自動生成並繪製圖例。

的Legend通常由通過一個標籤的形式/形狀表示多個條目的每一個。

獲取圖表的圖例物件 為了自定義Legend,您可以Legend使用getLegend()方法從圖表中檢索物件: Legendlegend=chart.getLegend(); 控制是否應繪製圖例 setEnabled(booleanenabled):設定Legend啟用或禁用。

如果禁用,Legend將不會繪製。

樣式/修改圖例 setTextColor(intcolor):設定圖例標籤的顏色。

setTextSize(floatsize):在dp中設定圖例標籤的文字大小。

setTypeface(Typefacetf):設定Typeface圖例標籤的自定義 修剪 setWordWrapEnabled(booleanenabled):如果啟用,圖例的內容將不會裁剪到圖表範圍之外,而是建立新的一行。

請注意,這會降低效能,並且僅適用於圖表下方的圖例。

setMaxSizePercent(floatmaxSize):以百分比為單位設定整個圖表檢視中的最大相對大小。

預設值:0.95f(95%) 自定義圖例 setPosition(LegendPositionpos):設定,LegendPosition以定義Legend應該出現的位置。

在RIGHT_OF_CHART,RIGHT_OF_CHART_CENTER,RIGHT_OF_CHART_INSIDE,BELOW_CHART_LEFT,BELOW_CHART_RIGHT,BELOW_CHART_CENTER或PIECHART_CENTER中選擇(PieChart…),等等。

setForm(LegendFormshape):設定LegendForm應使用的。

這是圖例標籤旁邊用DataSet圖例條目代表的顏色繪製的形狀。

在SQUARE,CIRCLE或LINE之間選擇。

setFormSize(floatsize):以dp設定圖例形式的大小。

setXEntrySpace(floatspace):設定水平軸上圖例項之間的間隔。

setYEntrySpace(floatspace):設定垂直軸上圖例條目之間的間隔。

setFormToTextSpace(floatspace):設定圖例標籤和相應的圖例形式之間的空間。

setWordWrapEnabled(booleanenabled):傳奇文字應該換行嗎?/當前僅以下,左下,右下,中圖中心支援此功能。

/您可能希望在自動換行時設定maxSizePercent,以設定文字自動換行的點。

設定自定義標籤和顏色 setCustom(int[]colors,String[]labels):設定自定義圖例的標籤和顏色陣列。

顏色計數應與標籤計數匹配。

每種顏色都是針對在相同索引處繪製的表單。

空標籤將啟動一個組。

(-2)顏色將避免繪製表單。

這將禁用自動從數​​據集中計算圖例標籤和顏色的功能。

呼叫resetCustom()以重新啟用自動計算(然後notifyDataSetChanged()需要再次自動計算圖例) resetCustom():呼叫此選項將禁用自定義圖例標籤(由設定setCustom(...))。

而是,標籤將再次自動計算(notifyDataSetChanged()呼叫後)。

setExtra(int[]colors,String[]labels):設定在計算圖例後將設定在自動計算的顏色和標籤陣列末尾的顏色和標籤。

(如果已經計算了圖例,則需要致電notifyDataSetChanged()以使更改生效) 描述 獲取描述物件 Descriptiondescription=chart.getDescription(); setEnabled(booleanenabled)啟用或禁用描述 setText(stringstr)設定描述文字 setPosition(floatx,floaty)設定說明在螢幕上的位置 示例 折線圖   檢視 Java 1//尋找到控制元件 2LineChartdongxiaodongchart=findViewById(R.id.chart); 3dongxiaodongchart.getAxisRight().setEnabled(false);//y軸右邊不顯示 4dongxiaodongchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);//只在圖表下面顯示x軸 5//建立兩個資料集 6ListvalsComp1=newArrayList();//資料集1 7valsComp1.add(newEntry(1,2)); 8valsComp1.add(newEntry(1.2f,3.9f)); 9valsComp1.add(newEntry(2f,6)); 10ListvalsComp2=newArrayList();//資料集2 11valsComp2.add(newEntry(1,2)); 12valsComp2.add(newEntry(2.2f,3.9f)); 13valsComp2.add(newEntry(3f,6)); 14//建立兩個線物件 15LineDataSetsetComp1=newLineDataSet(valsComp1,"東小東1"); 16LineDataSetsetComp2=newLineDataSet(valsComp2,"東小東2"); 17//線物件的樣式(更多見:資料物件樣式) 18setComp1.setColor(Color.RED);//設定線的顏色 19setComp2.setCircleRadius(10);//設定資料點的大小 20//資料顯示 21LineDatadata=newLineData(setComp1,setComp2); 22dongxiaodongchart.setData(data); 23dongxiaodongchart.invalidate(); 帶顏色填充的折線圖  檢視  Java 1//尋找到控制元件 2LineChartdongxiaodongchart=findViewById(R.id.chart); 3dongxiaodongchart.getAxisRight().setEnabled(false);//y軸右邊不顯示 4dongxiaodongchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);//只在圖表下面顯示x軸 5//建立兩個資料集 6ListvalsComp1=newArrayList();//資料集1 7valsComp1.add(newEntry(1,2)); 8valsComp1.add(newEntry(1.2f,3.9f)); 9valsComp1.add(newEntry(2f,6)); 10ListvalsComp2=newArrayList();//資料集2 11valsComp2.add(newEntry(1,2)); 12valsComp2.add(newEntry(2.2f,3.9f)); 13valsComp2.add(newEntry(3f,6)); 14//建立兩個線物件 15LineDataSetsetComp1=newLineDataSet(valsComp1,"東小東1"); 16LineDataSetsetComp2=newLineDataSet(valsComp2,"東小東2"); 17//線物件的樣式(更多見:資料物件樣式) 18setComp1.setColor(Color.RED);//設定線的顏色 19setComp1.setDrawFilled(true); 20setComp2.setDrawFilled(true); 21setComp2.setFillColor(Color.YELLOW); 22//資料顯示 23LineDatadata=newLineData(setComp1,setComp2); 24dongxiaodongchart.setData(data); 25dongxiaodongchart.invalidate();  條形圖 檢視   Java 1//尋找到控制元件 2BarChartdongxiaodongchart=findViewById(R.id.chart); 3//不顯示描述 4dongxiaodongchart.getDescription().setEnabled(false); 5//y軸右邊關閉 6dongxiaodongchart.getAxisRight().setEnabled(false); 7//x軸設定無網格 8XAxisxAxis=dongxiaodongchart.getXAxis(); 9xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 10xAxis.setDrawGridLines(false); 11xAxis.setGranularity(1f);//在放大到為軸設定的小數位數不再允許在兩個軸值之間進行區分的點時,可以使用此方法來避免值重複。

12//建立兩個資料集 13ListvalsComp1=newArrayList();//資料集1 14valsComp1.add(newBarEntry(1,2)); 15valsComp1.add(newBarEntry(3f,3.9f)); 16valsComp1.add(newBarEntry(5f,6)); 17//建立條形圖物件 18BarDataSetsetComp1=newBarDataSet(valsComp1,"東小東1"); 19setComp1.setColor(Color.RED); 20//資料顯示 21BarDatadata=newBarData(setComp1); 22dongxiaodongchart.setData(data);//設定資料 23dongxiaodongchart.invalidate();//重新整理 24//設定動畫樣式 25dongxiaodongchart.animateY(2000,Easing.EaseInOutQuad);  分組條形圖 檢視   java 1//尋找到控制元件 2BarChartdongxiaodongchart=findViewById(R.id.chart); 3 4//設定顏色圖示在右上角顯示,預設是在圖表底部並排顯示 5Legendl=dongxiaodongchart.getLegend(); 6l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP); 7l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT); 8l.setOrientation(Legend.LegendOrientation.VERTICAL); 9l.setDrawInside(true); 10l.setYOffset(0f); 11l.setXOffset(10f); 12l.setYEntrySpace(0f); 13l.setTextSize(8f); 14 15//Y軸設定 16dongxiaodongchart.getAxisRight().setEnabled(false); 17 18//X軸設定 19XAxisxAxis=dongxiaodongchart.getXAxis();//獲取到x軸物件 20xAxis.setGranularity(1f);//設定網格寬度 21xAxis.setCenterAxisLabels(true);//設定為刻度顯示在網格中間 22xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);//只在圖表下面顯示 23 24dongxiaodongchart.getDescription().setEnabled(false);//不顯示描述 25 26floatgroupSpace=0.08f;//組間隔 27floatbarSpace=0.03f;//每個柱狀圖的間隔 28floatbarWidth=0.2f;//每個柱狀圖的寬度 29//(0.2+0.03)*4+0.08=1.00->intervalper"group" 30 31//-----資料----- 32intgroupCount=3; 33intstartYear=1998; 34intendYear=startYear+groupCount; 35 36ArrayListvalues1=newArrayList<>(); 37ArrayListvalues2=newArrayList<>(); 38ArrayListvalues3=newArrayList<>(); 39ArrayListvalues4=newArrayList<>(); 40 41floatrandomMultiplier=6*10; 42 43for(inti=startYear;i  Java 1//尋找到控制元件 2BarChartdongxiaodongchart=findViewById(R.id.chart); 3//不顯示描述 4dongxiaodongchart.getDescription().setEnabled(false); 5//y軸右邊關閉 6YAxisleftAxis=dongxiaodongchart.getAxisLeft(); 7leftAxis.setAxisMinimum(0f);//從零開始 8dongxiaodongchart.getAxisRight().setEnabled(false); 9//x軸設定無網格 10XAxisxAxis=dongxiaodongchart.getXAxis(); 11xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); 12xAxis.setDrawGridLines(false); 13xAxis.setGranularity(1f);//在放大到為軸設定的小數位數不再允許在兩個軸值之間進行區分的點時,可以使用此方法來避免值重複。

14//建立兩個資料集 15ListvalsComp1=newArrayList();//資料集1 16valsComp1.add(newBarEntry(-2f,newfloat[]{5,20,4})); 17valsComp1.add(newBarEntry(0f,newfloat[]{10,6,3})); 18valsComp1.add(newBarEntry(2f,newfloat[]{10,20,7})); 19//建立條形圖物件 20BarDataSetsetComp1=newBarDataSet(valsComp1,"東小東1"); 21setComp1.setDrawIcons(false); 22setComp1.setColors(newint[]{Color.RED,Color.GREEN,Color.BLUE}); 23setComp1.setStackLabels(newString[]{"東1","東2","東3"}); 24ArrayListdataSets=newArrayList<>(); 25dataSets.add(setComp1); 26//顯示 27BarDatadata=newBarData(dataSets); 28dongxiaodongchart.setData(data); 29dongxiaodongchart.setFitBars(true); 30dongxiaodongchart.invalidate(); 31//設定動畫樣式 32dongxiaodongchart.animateY(2000,Easing.EaseInOutQuad);  餅形圖    檢視  Java 1//尋找到控制元件 2PieChartdongxiaodongchart=findViewById(R.id.chart); 3//圓環中間顯示 4dongxiaodongchart.setCenterText("東小東\n主要標題"); 5dongxiaodongchart.setCenterTextSize(15); 6//邊距設定 7dongxiaodongchart.setExtraOffsets(20.f,10.f,20.f,10f); 8//資料線條 9dongxiaodongchart.setHoleRadius(58f); 10dongxiaodongchart.setTransparentCircleRadius(61f); 11//顏色標識顯示 12Legendl=dongxiaodongchart.getLegend(); 13l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP); 14l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT); 15l.setOrientation(Legend.LegendOrientation.VERTICAL); 16//l.setDrawInside(false);//新增不顯示 17//l.setEnabled(false); 18//資料 19Listlist=newArrayList<>(); 20list.add(newPieEntry(30,"東1")); 21list.add(newPieEntry(30,"東2")); 22list.add(newPieEntry(40,"東3")); 23PieDataSetpieDataSet=newPieDataSet(list,"資料標題"); 24//設定樣式 25pieDataSet.setColors(Color.RED,Color.GRAY,Color.CYAN);//設定各個資料的顏色 26//設定為值外部顯示,註釋則內部顯示 27pieDataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE); 28pieDataSet.setValueLineColor(Color.RED);//值引線為紅色 29pieDataSet.setValueTextSize(30); 30//輸出值 31PieDatadata=newPieData(pieDataSet); 32data.setValueTextSize(11f);//顯示值的大小 33data.setValueTextColor(Color.BLUE);//顯示值的顏色 34dongxiaodongchart.setData(data);//設定資料 35dongxiaodongchart.invalidate();//重新整理  全餅圖     檢視  java 1//尋找到控制元件 2PieChartdongxiaodongchart=findViewById(R.id.chart); 3dongxiaodongchart.getDescription().setText("東小東圖表描述欄位"); 4//外邊距設定 5dongxiaodongchart.setExtraOffsets(20.f,10.f,20.f,10f); 6//圖例 7Legendl=dongxiaodongchart.getLegend(); 8l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP); 9l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT); 10l.setOrientation(Legend.LegendOrientation.VERTICAL); 11//資料 12Listlist=newArrayList<>(); 13list.add(newPieEntry(300,"東1")); 14list.add(newPieEntry(300,"東2")); 15list.add(newPieEntry(700,"東3")); 16PieDataSetpieDataSet=newPieDataSet(list,"資料標題"); 17//設定樣式 18pieDataSet.setColors(Color.RED,Color.GRAY,Color.CYAN);//設定各個資料的顏色 19//輸出值 20PieDatadata=newPieData(pieDataSet); 21//資料顯示大小 22data.setValueTextSize(11f);//顯示值的大小 23data.setValueTextColor(Color.WHITE);//顯示值 24//設定顯示單位為% 25data.setValueFormatter(newPercentFormatter(dongxiaodongchart)); 26//設定開啟百分比顯示 27dongxiaodongchart.setUsePercentValues(true); 28//中心圓設定 29 30 31dongxiaodongchart.setHoleRadius(1);//中心圓半徑為1% 32dongxiaodongchart.setTransparentCircleRadius(0);//中心半透明圓半徑為0% 33//資料重新整理顯示 34dongxiaodongchart.setData(data);//設定資料 35dongxiaodongchart.invalidate();//重新整理 動態資料線圖  檢視  java 1//尋找到控制元件 2dongxiaodongchart=findViewById(R.id.chart); 3//設定圖示座標樣式 4dongxiaodongchart.getAxisRight().setEnabled(false);//y軸右邊不顯示 5dongxiaodongchart.getXAxis().setPosition(XAxis.XAxisPosition.BOTTOM);//只在圖表下面顯示x軸 6//頂部的線,最高限值虛線 7LimitLinell1=newLimitLine(3f,"最高限值");//引數是顯示的y軸值 8ll1.setLineWidth(2f);//設定線條寬度 9ll1.enableDashedLine(10f,10f,0f);//配置虛線樣式 10ll1.setLabelPosition(LimitLine.LimitLabelPosition.RIGHT_TOP);//設定字型顯示線上的上面 11ll1.setTextSize(10f);//設定字型大小 12//底部的線,最低限值虛線 13LimitLinell2=newLimitLine(-2f,"最低限值"); 14ll2.setLineWidth(2f); 15ll2.enableDashedLine(10f,10f,0f); 16ll2.setLabelPosition(LimitLine.LimitLabelPosition.RIGHT_BOTTOM); 17ll2.setTextSize(10f); 18//獲取y軸物件 19YAxisyAxis=dongxiaodongchart.getAxisLeft(); 20//設定圖表的y軸顯示最大最小值範圍 21yAxis.setAxisMaximum(15f); 22yAxis.setAxisMinimum(-5f); 23//開始顯示兩條限值線 24yAxis.addLimitLine(ll1); 25yAxis.addLimitLine(ll2); 26//建立兩個資料集 27ListvalsComp1=newArrayList();//資料集1 28valsComp1.add(newEntry(1,2)); 29valsComp1.add(newEntry(1.2f,3.9f)); 30valsComp1.add(newEntry(2f,6)); 31//建立線物件 32LineDataSetsetComp1=newLineDataSet(valsComp1,"東小東1"); 33//線物件的樣式(更多見:資料物件樣式) 34setComp1.setColor(Color.BLUE);//設定線的顏色 35setComp1.setDrawFilled(true); 36//資料顯示 37LineDatadata=newLineData(setComp1); 38dongxiaodongchart.setData(data); 39dongxiaodongchart.invalidate(); 40} 41//資料重新整理函式 42publicvoidrefreshvalue(){ 43//建立新的資料 44ArrayListvalues=newArrayList<>(); 45for(inti=0;i<10;i++){ 46floatval=(float)(Math.random()*10)-4;//Math.random():產生一個[0,1) 47values.add(newEntry(i,val)); 48} 49//獲取現在的線物件 50LineDataSetset1=(LineDataSet)dongxiaodongchart.getData().getDataSetByIndex(0); 51//設定新的資料 52set1.setValues(values); 53//通知資料改變 54set1.notifyDataSetChanged(); 55dongxiaodongchart.getData().notifyDataChanged(); 56dongxiaodongchart.notifyDataSetChanged(); 57//重新整理顯示 58dongxiaodongchart.invalidate(); 59} 60//資料加入一條函式 61publicvoidaddvalue(){ 62//獲取現在的線物件 63LineDataSetset1=(LineDataSet)dongxiaodongchart.getData().getDataSetByIndex(0); 64//設定隨意的座標值 65intx=set1.getEntryCount(); 66floaty=(float)(Math.random()*10)-4;//Math.random():產生一個[0,1) 67//新增一個點 68set1.addEntry(newEntry(x,y)); 69//通知資料改變 70set1.notifyDataSetChanged(); 71dongxiaodongchart.getData().notifyDataChanged(); 72dongxiaodongchart.notifyDataSetChanged(); 73//重新整理顯示 74dongxiaodongchart.invalidate(); 75} 76//按鍵事件監聽 77publicvoidButADD(Viewv){ 78Toast.makeText(MainActivity.this,"新增一條資料",Toast.LENGTH_SHORT).show(); 79addvalue(); 80} 81publicvoidButREF(Viewv){ 82Toast.makeText(MainActivity.this,"重新整理所有資料顯示",Toast.LENGTH_SHORT).show(); 83refreshvalue(); 84} 開源地址:https://github.com/PhilJay/MPAndroidChart 官方文件:https://weeklycoding.com/mpandroidchart-documentation/ 參考:https://blog.csdn.net/qq_44720366/article/details/104583622  相關文章 有大佬做安卓平臺的白盒測試麼? 2020-10-28 11月5日!《曙光英雄》即將開啟安卓平臺首發 2020-10-29 appium安卓應用指令碼 2020-10-29 appium 安卓OpenGLES環境搭建(十) 2020-10-30 OpenGL 騰訊,真對不起了!這下好了支援安卓,蘋果,盒子的藍光VIP免費 2020-10-31 騰訊 安卓期末複習框架圖 2020-11-04 框架 安卓手中appium怎麼定位不了的呢 2020-11-04 appium 安卓開發環境配置之Windows+ADT+eclipse 2020-11-04 Eclipse 海外還有哪些有量的安卓商店可錦上添花? 2020-11-05 全民賽事MOBA!《曙光英雄》安卓首發今日開啟 2020-11-05 全網首發:使用安卓MediaCodecEncoder進行編碼時的方向問題 2020-11-08 安卓快速關機APP 2020-11-10 安卓開發第一步:安卓面試題 2020-11-14 面試 AMDCPU安裝AndroidStudio時候提示“安裝安卓模擬器失敗” 2020-11-14 AndroidCPU 實驗3-安卓音樂盒軟體 2020-11-16 安卓關閉fragment 2020-11-17 【精華】安卓開發學習路線規劃 2020-11-19 蘋果都下調分成比例至15%了,安卓渠道還要堅持5:5分成嗎? 2020-11-19 安卓APP開發日記1——名為Another的日記APP開發 2020-11-21 最新文章 CMR:印度手機遊戲調查報告 大咖說·圖書分享|HaaS物聯網裝置雲端一體開發框架 話實踐,行實幹,成實事:“巡禮”數字化的中國大地 構建安全程式碼防止供應鏈攻擊 【推薦閱讀】超有用的漏洞掃描工具合集! 國密SM演算法有哪些? 為什麼伺服器選擇Linux系統 ApacheFlinkML2.1.0釋出公告 乾貨|作為前端開發者如何邁向獨立開發者 助力開發者,全方位解讀APISIX測試案例 得物資料庫中介軟體平臺“彩虹橋”演進之路 KubeSphere3.3.0離線安裝教程



請為這篇文章評分?