日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

android 开源图表动画,Android 图表开发开源库MPAndroidChart-Go语言中文社区

發布時間:2025/3/12 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 开源图表动画,Android 图表开发开源库MPAndroidChart-Go语言中文社区 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上面是APP中實現的效果圖(點擊可以放大查看)

圖1的效果不是用這個實現的,如果感興趣可以參考我這篇文章 ?Android漸變圓環

總體來說,MPAndroidChart可能是目前Android 開發最好用的一個三方庫了,功能非常強大,集成簡單。

直接導入作為依賴就可以。

常用的效果(柱狀圖(橫向,豎向),線狀圖(多種效果),餅狀圖,點狀圖都包括),屬性也很簡單,我們使用的時候只需要熟悉控件的各種屬性即可。

開源庫的核心功能:支持x,y軸縮放

支持拖拽

支持手指滑動

支持高亮顯示

支持保存圖表到文件中

支持從文件(txt)中讀取數據

預先定義顏色模板

自動生成標注

支持自定義x,y軸的顯示標簽

支持x,y軸動畫

支持x,y軸設置最大值和附加信息

支持自定義字體,顏色,背景,手勢,虛線等

以 柱狀圖舉列使用:

xml中直接定義

Activity中 初始化

protectedTypeface mTfLight;mTfLight= Typeface.createFromAsset(getActivity().getAssets(),"OpenSans-Light.ttf");//字體mChartPmOne= (BarChart) view.findViewById(R.id.chart_pm_one);BarData data = generateData(3);//生成數據//設置字體及顏色data.setValueTypeface(mTfLight);data.setValueTextColor(Color.BLACK);//設置mChartPmOne.getDescription().setEnabled(false);mChartPmOne.setDrawGridBackground(false);mChartPmOne.setGridBackgroundColor(Color.WHITE);XAxis xAxis = mChartPmOne.getXAxis();xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);xAxis.setTypeface(mTfLight);xAxis.setDrawGridLines(false);xAxis.setTextColor(Color.WHITE);xAxis.setValueFormatter(newIAxisValueFormatter() {

privateSimpleDateFormat mFormat= newSimpleDateFormat("HH:mm");@OverridepublicString getFormattedValue(floatvalue,AxisBase axis) {

longmillis = TimeUnit.HOURS.toMillis((long) value);returnmFormat.format(newDate(millis));}

});YAxis leftAxis = mChartPmOne.getAxisLeft();leftAxis.setTypeface(mTfLight);leftAxis.setTextColor(Color.WHITE);leftAxis.setLabelCount(5, false);leftAxis.setSpaceTop(15f);YAxis rightAxis = mChartPmOne.getAxisRight();rightAxis.setEnabled(false);mChartPmOne.setData(data);Legend l = mChartPmOne.getLegend();mChartPmOne.getLegend().setEnabled(false);mChartPmOne.setFitBars(true);mChartPmOne.animateY(700);privateBarData generateData(intcnt) {

intstate=0;ArrayList entries = newArrayList();for(inti = 0;i < 24;i++) {

state = i;BarEntry barEntry = newBarEntry(i,(float) (Math.random() * 300) + 0,state);entries.add(barEntry);}

BarDataSet d = newBarDataSet(entries,"New DataSet "+ cnt);// d.setColor(getResources().getColor(R.color.color_environment_excellent));int[] VORDIPLOM_COLORS = {getResources().getColor(R.color.color_environment_severe),getResources().getColor(R.color.color_environment_serious),getResources().getColor(R.color.color_environment_excellent),getResources().getColor(R.color.color_environment_good),getResources().getColor(R.color.color_environment_mild),getResources().getColor(R.color.color_environment_moderate)};d.setColors(VORDIPLOM_COLORS);d.setBarShadowColor(Color.rgb(203,203,203));ArrayList sets = newArrayList();sets.add(d);BarData cd = newBarData(sets);cd.setBarWidth(0.9f);returncd;}

圖表包含 ?X軸(橫軸)getAxis , ?Y軸(左軸,豎軸)getAsixLeft, ?右軸getAxisRight

插入一點:Y軸的最大值,最小值范圍是可以手動設定的,如果沒有手動設定Y軸會自動取傳進數據的 最大值作為最大值,最小值作為最小值。

leftAxis.setAxisMaximum(200);leftAxis.setAxisMinimum(0);

通過獲取相應的軸對象 設置 這幾個軸對應相應的屬性(字體,顏色,標簽,線寬,網格線等等)

整理了一下 圖表中常用的一些方法

動畫:

所有的圖表類型都支持下面三種動畫,分別是x方向,y方向,xy方向。

?animateX(int durationMillis): x軸方向

?animateY(int durationMillis): y軸方向

?animateXY(int xDuration, int yDuration): xy軸方向XY軸的繪制

setEnabled(boolean enabled):設置軸是否被繪制。默認繪制,false不會被繪制。

setDrawLabels(boolean enabled):設置為true打開繪制軸的標簽。

setDrawAxisLine(boolean enabled): 設置為true,繪制軸線

setDrawGridLines(boolean enabled): 設置為true繪制網格線。定義軸線樣式

setTextColor(int color): 設置軸標簽文本顏色。

setTextSize(float size):設置軸標簽的字體大小。

setTypeface(Typeface tf):設置軸標簽的自定義Typeface(Typeface.createFromAsset(getAssets(), "字體文件名");)

setGridColor(int color): 設置網格線顏色。

setGridLineWidth(float width):設置網格線寬度。

setAxisLineColor(int color):設置此軸的坐標軸的顏色。

setAxisLineWidth(float width): 設置此軸的坐標軸的寬度。

setVisibleXRangeMaximum(float maxXRange):設置x軸最多顯示數據條數,(要在設置數據源后調用,否則是無效的)

enableGridDashedLine(float lineLength, float spaceLength, float phase): 顯示網格線虛線模式,"lineLength"控制短線條的長度,"spaceLength"控制兩段線之間的間隔長度,"phase"控制開始的點。

圖表交互設置

setTouchEnabled(boolean enabled): 允許你打開或者關閉與圖表的所有觸摸交互的情況。設置是否可以觸摸,如為false,則不能拖動,縮放等

setDragEnabled(boolean enabled): 打開或關閉對圖表的拖動。

setScaleEnabled(boolean enabled):打開或關閉對圖表所有軸的的縮放。

setScaleXEnabled(boolean enabled): 打開或關閉x軸的縮放

setScaleYEnabled(boolean enabled): 打開或關閉y軸的縮放。

setPinchZoom(boolean enabled): 如果設置為true,擠壓縮放被打開。如果設置為false,x和y軸可以被單獨擠壓縮放。

setHighlightEnabled(boolean enabled): 如果設置為true,在圖表中選中觸屏高亮。

setHighlightPerDragEnabled(boolean enabled): 設置為true時允許高亮顯示拖動結束的對象在縮放到最下時。默認:true

setHighlightIndicatorEnabled(boolean enabled): 如果設置為true, 指標線(或桿)將展示被選擇的線的繪制的值。

自定義軸線的值

setAdjustXLabels(boolean enabled):如果被設置為true,x軸條目將依賴于它自己在進行縮放的時候。如果設置為false,x軸條目將總是保持相同。

setAvoidFirstLastClipping(boolean enabled):如果設置為true,圖表將避免第一個和最后一個標簽條目被減掉在圖表或屏幕的邊緣。

setSpaceBetweenLabels(int characters): 設置x軸標簽之間的空間字符數,默認是4個。

setPosition(XAxisPosition pos):設置XAxis應該出現的位置。可以選擇TOP,BOTTOM,BOTH_SIDED,TOP_INSIDE或者BOTTOM_INSIDE。

setDescription(String desc): 設置表格的描述

? setDrawYValues(boolean enabled): 設置是否顯示y軸的值的數據

?setValuePaintColor(int color):設置表格中y軸的值的顏色,但是必須設置setDrawYValues(true)

? setValueTypeface(Typeface t):設置字體

? setValueFormatter(DecimalFormat format): 設置顯示的格式

? setPaint(Paint p, int which): 自定義筆刷

?public ChartData getDataCurrent():返回ChartData對象當前顯示的圖表。它包含了所有信息的顯示值最小和最大值等setStartAtZero(boolean enabled):如果這個打開,軸線總是有最小值0,無論什么類型的圖表被展示。

setAxisMaxValue(float max):設置一個自定義的最大值為這條軸,如果設置了,這個值將不會依賴于提供的數據自動計算。

resetAxisMaxValue(): 調用這個將撤銷以前設置的最大值。這意味著,你將再次允許軸自動計算它的最大值。

setAxisMinValue(float min): 設置一個自定義的最小值。如果設置了,這個值將不會依賴于你提供的數據進行自動計算。

resetAxisMinValue():調用這個方法撤銷以前設置的最小值。這意味著,你將再次允許軸自動計算他的最小值。

setInverted(boolean enabled): 如果設置為true,這個軸將被反向,那意味著最高出的將到底部,最低部的到頂端。

setSpaceTop(float percent):設置在圖表上最高處的值相比軸上最高值的頂端空間(總軸范圍的百分比)

setSpaceBottom(float percent): 設置在圖表上最低處的值相比軸上最低處值的底部空間(總軸范圍的百分比)

setShowOnlyMinMax(boolean enabled): 如果打開了,這個軸將展示出它的最小值和最大值。這將忽略或者覆蓋定義過的label-count。

setPosition(YAxisLabelPosition pos):設置軸標簽應該被繪制的位置。INSIDE_CHART或者OUTSIDE_CHART中的一個。 自定義影響軸的數值范圍應該在圖表被設置數據之前應用。

?public float getYChartMin(): 返回當前最小值

?public float getYChartMax(): 返回當前最大值

?public float getAverage(): 返回所有值的平均值。

?public float getAverage(int type): 返回平均值

?public PointF getCenter(): 返回中間點

?public Paint getPaint(int which): 得到筆刷

?setDragScaleEnabled(boolean enabled): 設置是否可以拖拽,縮放

?setOnChartValueSelectedListener(OnChartValueSelectedListener l): 設置表格上的點,被點擊的時候,的回調函數

?public void highlightValues(Highlight[] highs): 設置高亮顯示

?saveToGallery(String title): 保存圖表到圖庫中

?saveToPath(String title, String pathOnSD): 保存.

?setScaleMinima(float x, float y): 設置最小的縮放

?centerViewPort(int xIndex, float val): 設置視口

?fitScreen(): 適應屏幕

希望可以幫助到大家,如果大家還有其他問題,可以加入我的qq群討論交流。

偶然發現一個大神總結的:https://blog.csdn.net/u014136472/article/details/50273309 非常詳細

開發一群:454430053開發二群:537532956

總結

以上是生活随笔為你收集整理的android 开源图表动画,Android 图表开发开源库MPAndroidChart-Go语言中文社区的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。