内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

android折線圖,移動折線圖

Android MPAndroidChart 折線圖設(shè)置哪些屬性?

在org.achartengine.renderer這個包里有一個類BasicStroke,可以改變線型(實線、虛線、點線),而折線圖中用的是XYMultipleSeriesRenderer這個類,它繼承自DefaultRenderer,這個與BasicStroke是一個包里的子類,DefaultRenderer有一個方法是setShowGridY(boolean showGrid),感覺在這個方法里肯定有設(shè)置線型的語句,但是我現(xiàn)在沒找到AChartEngine的具體五毛源碼,不知道這個方法具體是怎樣的,只能提供給你一個思路……我?guī)讉€月前也搗鼓過AChartEngine

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站設(shè)計、網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元高安做網(wǎng)站,已為上家服務(wù),為高安各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

Android怎么做數(shù)據(jù)折線圖

這個可以用安卓自定義view里的ondraw()方法來實現(xiàn),通過獲取的坐標(biāo),畫圖連接起來即可

下面的例子是一個畫矩形 的代碼,你可以試著改成畫曲線

public class AndroidTest extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

MyView mv = new MyView(this);

setContentView(mv);

}

public class MyView extends View {

MyView(Context context) {

super(context);

}

@Override

protected void onDraw(Canvas canvas) {

// TODO Auto-generated method stub

super.onDraw(canvas);

// 首先定義一個paint

Paint paint = new Paint();

// 繪制矩形區(qū)域-實心矩形

// 設(shè)置顏色

paint.setColor(Color.BLUE);

// 設(shè)置樣式-填充

paint.setStyle(Style.FILL);

// 繪制一個矩形

canvas.drawRect(new Rect(0, 0, getWidth(), getHeight()), paint);

// 繪空心矩形

// 設(shè)置顏色

paint.setColor(Color.RED);

// 設(shè)置樣式-空心矩形

paint.setStyle(Style.STROKE);

// 繪制一個矩形

canvas.drawRect(new Rect(10, 10, 100, 30), paint);

// 繪文字

// 設(shè)置顏色

paint.setColor(Color.GREEN);

// 繪文字

canvas.drawText("Hello", 10, 50, paint);

// 繪圖

// 從資源文件中生成位圖

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);

// 繪圖

canvas.drawBitmap(bitmap, 10, 60, paint);

}

}

}

關(guān)于android軟件編程中如何畫函數(shù)折線圖的問題

用Canvas的drawLine方法就可以了canvas.drawLine(startX, startY, stopX, stopY, paint);

startX, startY為起始坐標(biāo);

stopX, stopY為終點坐標(biāo);

paint就是一個Paint對象;

比如你的橫坐標(biāo)的第一個坐標(biāo)是(1, 2), 第二個坐標(biāo)是(2, 5), 第三個坐標(biāo)是(3, 10),那么這段折線可以這樣畫:

canvas.drawLine(1,2,2,5,paint);

canvas.drawLine(2,5,3,10,paint);

以此類推,剩下的3段折線都可以這樣畫出來

android中數(shù)據(jù)的折線圖怎么實現(xiàn)

推薦你幾個相關(guān)開源項目,可以根據(jù)需要自己選擇,自己畫還是比較麻煩的:MPAndroidChart強大的圖表繪制工具,支持折線圖、面積圖、散點圖、時間圖、柱狀圖、條圖、餅圖、氣泡圖、圓環(huán)圖、范圍(高至低)條形圖、網(wǎng)狀圖及各種圖的結(jié)合;支持圖的拖拽縮放;支持Android2.2以上,支持橫縱軸縮放,多指縮放,展現(xiàn)動畫、高亮、保存到sdcard、從文件讀取圖表achartengine強大的圖表繪制工具,支持折線圖、面積圖、散點圖、時間圖、柱狀圖、條圖、餅圖、氣泡圖、圓環(huán)圖、范圍(高至低)條形圖、撥號圖/表、立方線圖及各種圖的結(jié)合GraphView繪制圖表和曲線圖的View,可用于Android上的曲形圖、柱狀圖、波浪圖展示HoloGraphLibrary繪制線狀圖、柱狀圖、餅狀圖XCL-ChartsXCL-Charts基于原生的Canvas來繪制各種圖表,在設(shè)計時,盡量在保證開發(fā)效率的同時,給使用者提供足夠多的定制化能力。因此使用簡便,同時具有相當(dāng)靈活的定制能力。目前支持3D/非3D柱形圖(BarChart)、3D/非3D餅圖(PieChart)、堆積圖(StackedBarChart)、面積圖(AreaChart)、折線圖(LineChart)、曲線圖(SplineChart)、環(huán)形圖(DountChart)、南丁格爾玫瑰圖(RoseChart)、儀表盤(DialChart)、刻度盤(GaugeChart)、雷達圖(RadarChart)、圓形圖(CircleChart)等圖表。其它特性還包括支持圖表縮放、手勢移動、動畫顯示效果、高密度柱形顯示、圖表分界定制線、多圖表的混合顯示及同數(shù)據(jù)源不同類型圖表切換等。EazeGraphAndroid圖表庫,支持柱狀圖、分層柱狀圖、餅狀圖、線性圖WilliamChart繪制圖表的庫,支持LineChartView、BarChartView和StackBarChartView三中圖表類型,并且支持Android2.2及以上的系統(tǒng)。HelloChartsforAndroid支持折線圖、柱狀圖、餅圖、氣泡圖、組合圖;支持預(yù)覽、放大縮小,滾動,部分圖表支持動畫;支持Android2.2以上這些項目都可以在GitHub搜索到。

android折線圖

package?com.example.testcanvasdraw;?????????????????????????????????????????????????????????????????import?java.util.ArrayList;?import?java.util.List;?import?java.util.Random;?????????????????????????????????????????????????????????????????import?android.content.Context;?import?android.graphics.Canvas;?import?android.graphics.Color;?import?android.graphics.Paint;?import?android.os.Handler;?import?android.os.Message;?import?android.util.AttributeSet;?import?android.view.View;?????????????????????????????????????????????????????????????????public?class?MyView?extends?View{?????private?int?XPoint?=?60;?????private?int?YPoint?=?260;?????private?int?XScale?=?8;??//刻度長度?????private?int?YScale?=?40;?????private?int?XLength?=?380;?????private?int?YLength?=?240;?????????????????????????????????????????????????????????????????????????private?int?MaxDataSize?=?XLength?/?XScale;?????????????????????????????????????????????????????????????????????????private?ListInteger?data?=?new?ArrayListInteger();?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????private?String[]?YLabel?=?new?String[YLength?/?YScale];?????????????????????????????????????????????????????????????????????????private?Handler?handler?=?new?Handler(){?????????public?void?handleMessage(Message?msg)?{?????????????if(msg.what?==?0x1234){?????????????????MyView.this.invalidate();?????????????}?????????};?????};?????public?MyView(Context?context,?AttributeSet?attrs)?{?????????super(context,?attrs);?????????for(int?i=0;?iYLabel.length;?i++){?????????????YLabel[i]?=?(i?+?1)?+?"M/s";?????????}?????????????????????????????????????????????????????????????????????????????????new?Thread(new?Runnable()?{?????????????????????????????????????????????????????????????????????????????????????????@Override?????????????public?void?run()?{?????????????????while(true){?????????????????????try?{?????????????????????????Thread.sleep(1000);?????????????????????}?catch?(InterruptedException?e)?{?????????????????????????e.printStackTrace();?????????????????????}?????????????????????if(data.size()?=?MaxDataSize){?????????????????????????data.remove(0);?????????????????????}?????????????????????data.add(new?Random().nextInt(4)?+?1);?????????????????????handler.sendEmptyMessage(0x1234);?????????????????}?????????????}?????????}).start();?????}?????????????????????????????????????????????????????????????????????????@Override?????protected?void?onDraw(Canvas?canvas)?{?????????super.onDraw(canvas);?????????Paint?paint?=?new?Paint();?????????paint.setStyle(Paint.Style.STROKE);?????????paint.setAntiAlias(true);?//去鋸齒?????????paint.setColor(Color.BLUE);?????????????????????????????????????????????????????????????????????????????????//畫Y軸?????????canvas.drawLine(XPoint,?YPoint?-?YLength,?XPoint,?YPoint,?paint);?????????????????????????????????????????????????????????????????????????????????//Y軸箭頭?????????canvas.drawLine(XPoint,?YPoint?-?YLength,?XPoint?-?3,?YPoint-YLength?+?6,?paint);??//箭頭?????????canvas.drawLine(XPoint,?YPoint?-?YLength,?XPoint?+?3,?YPoint-YLength?+?6?,paint);?????????????????????????????????????????????????????????????????????????????????//添加刻度和文字?????????for(int?i=0;?i?*?YScale??YLength;?i++)?{?????????????canvas.drawLine(XPoint,?YPoint?-?i?*?YScale,?XPoint?+?5,?YPoint?-?i?*?YScale,?paint);??//刻度?????????????????????????????????????????????????????????????????????????????????????????canvas.drawText(YLabel[i],?XPoint?-?50,?YPoint?-?i?*?YScale,?paint);//文字?????????}?????????????????????????????????????????????????????????????????????????????????//畫X軸?????????canvas.drawLine(XPoint,?YPoint,?XPoint?+?XLength,?YPoint,?paint);?????????System.out.println("Data.size?=?"?+?data.size());?????????if(data.size()??1){?????????????for(int?i=1;?idata.size();?i++){?????????????????canvas.drawLine(XPoint?+?(i-1)?*?XScale,?YPoint?-?data.get(i-1)?*?YScale,??????????????????????????XPoint?+?i?*?XScale,?YPoint?-?data.get(i)?*?YScale,?paint);?????????????}?????????}?????}?}

上面繪制折線部分我們還有一種方式同樣可以實現(xiàn):

if(data.size()??1){?????Path?path?=?new?Path();?????path.moveTo(XPoint,?YPoint?-?data.get(0)?*?YScale);?????for(int?i=1;?idata.size();?i++){?????????path.lineTo(XPoint?+?i?*?XScale,?YPoint?-?data.get(i)?*?YScale);?????}?????canvas.drawPath(path,?paint);?}

android怎么讓折線圖上方顯示數(shù)字

直接在旁邊寫數(shù)字就可以了。主要畫折線圖。

步驟一:折線圖的坐標(biāo)集

首先應(yīng)該創(chuàng)建 XYSeries對象 : 用于提供繪制的點集合的數(shù)據(jù)

XYSeries series = new XYSeries(titles[i]); // 根據(jù)每條線的名稱創(chuàng)建

將所有的坐標(biāo)加入這個集合

series .add (xV[k], yV[k]);

XYMultipleSeriesDataset對象 用于 保存點集數(shù)據(jù) ,包括每條曲線的X,Y坐標(biāo)

// 用于數(shù)據(jù)的存放

XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();

dataset .addSeries (series);

步驟二:折線圖的樣式集

定義每條曲線的顏色

int [] colors = new int [] {Color. BLUE ,Color. GREEN };

定義每條曲線的點的形狀

PointStyle [] styles =

new PointStyle []{ PointStyle . CIRCLE , PointStyle . DIAMOND };

曲線圖的格式,包括顏色,值的范圍,點和線的形狀等等 都封裝在 XYSeriesRender對象中,再將XYSeriesRender對象封裝在 XYMultipleSeriesRenderer 對象中

XYSeriesRenderer r = new XYSeriesRenderer();

r.setColor(colors[i]);

r.setPointStyle(styles[i]);

r.setFillPoints(fill);

XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();

renderer.addSeriesRenderer(r);

設(shè)置折線圖名稱,坐標(biāo)軸的名稱,坐標(biāo)軸的起點重點,坐標(biāo)軸的顏色,坐標(biāo)軸上數(shù)字的顏色

setChartSettings(renderer, "Line Chart Demo" , "X" , "Y" , - 1 , 12, 0, 35 , Color. WHITE , Color. WHITE );

步驟三:顯示折線圖

View chart = ChartFactory. getLineChartView ( this , dataset, renderer);

setContentView(chart);

本文題目:android折線圖,移動折線圖
網(wǎng)站網(wǎng)址:http://m.rwnh.cn/article22/dsdhicc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站設(shè)計公司商城網(wǎng)站、品牌網(wǎng)站建設(shè)企業(yè)建站、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
阿拉善左旗| 禹州市| 云和县| 醴陵市| 阳城县| 永泰县| 夏河县| 米泉市| 永吉县| 桐庐县| 巴楚县| 锡林郭勒盟| 甘南县| 皋兰县| 家居| 周口市| 博乐市| 稷山县| 山阴县| 深水埗区| 南安市| 阜南县| 连江县| 叙永县| 清远市| 两当县| 育儿| 丽江市| 广安市| 永春县| 平南县| 萍乡市| 福海县| 玉门市| 宁国市| 邯郸市| 合山市| 肇源县| 蒙山县| 兴业县| 东乌珠穆沁旗|