• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android平臺的柱狀圖組件的設(shè)計實(shí)現(xiàn)

      2016-10-18 07:48:24高毅楊克光王昕
      現(xiàn)代計算機(jī) 2016年16期
      關(guān)鍵詞:柱狀圖刻度繪制

      高毅,楊克光,王昕

      (云南師范大學(xué)文理學(xué)院,昆明650222)

      基于Android平臺的柱狀圖組件的設(shè)計實(shí)現(xiàn)

      高毅,楊克光,王昕

      (云南師范大學(xué)文理學(xué)院,昆明650222)

      在很多移動應(yīng)用開發(fā)中,開發(fā)人員都會用到柱狀圖工具。但是,Android平臺并不提供這種組件。提出一種基于Android平臺的柱狀圖組件的設(shè)計及實(shí)現(xiàn)方法,實(shí)現(xiàn)的柱狀圖效果良好,這對移動應(yīng)用的開發(fā)有很好的意義。

      Android平臺;柱狀圖;組件

      0 引言

      隨著信息技術(shù)的飛速發(fā)展和人類社會的日益進(jìn)步,用戶對移動應(yīng)用的需求越來越多,不僅是對移動應(yīng)用的數(shù)量,對移動應(yīng)用的種類也要求要越來越豐富,這其中,很多移動應(yīng)用都和柱狀圖組件有著緊密的聯(lián)系,然而,Android平臺并沒有提供柱狀圖組件,雖然可以從開源項(xiàng)目中獲得,但都存在一些不足,不能滿足項(xiàng)目開發(fā)的需求。為此,本文結(jié)合View類重寫、畫布、畫筆技術(shù),提出一種自定義的柱狀圖組件的設(shè)計實(shí)現(xiàn)方法。

      1 相關(guān)概念

      1.1柱狀圖[1]

      柱狀圖,也稱條狀圖,是一種以長方形的長度為變量的表達(dá)圖形的統(tǒng)計報告圖,由一系列高度不等的縱向條紋表示數(shù)據(jù)分布的情況,用來比較兩個或以上的價值(不同時間或者不同條件),只有一個變量,通常利用于較小的數(shù)據(jù)集分析。

      1.2 View類[2]

      雖然Android提供了很多繼承了View類的UI組件,但是在實(shí)際開發(fā)時,還會出現(xiàn)不足以滿足程序需要的情況。用戶可以通過繼承View來派生自定義組件。首先定義一個繼承View基類的子類,然后重寫View類的一個或者多個方法。下面就View類的主要方法進(jìn)行簡單介紹:

      (1)構(gòu)造器:重寫構(gòu)造器是定制View的最基本方式,當(dāng)Java代碼創(chuàng)建一個View實(shí)例,或根據(jù)XML布局文件加載并構(gòu)建界面時將需要調(diào)用構(gòu)造器。

      (2)onMeasure(int,int):調(diào)用該方法來檢測View組件及它所包含的所有子組件的大小。

      (3)onLayout(boolean,int,int,int,int):當(dāng)該組件需要分配其子組件的位置、大小時,該方法就會被回調(diào)。

      (4)onSizeChanged(int,int,int,int):當(dāng)該組件的大小被改變時回調(diào)該方法。

      (5)onDraw(Canvas):當(dāng)該組件將要繪制它的內(nèi)容時回調(diào)該方法進(jìn)行繪制。

      (6)onKeyDown(int,KeyEvent):當(dāng)某個鍵被按下時觸發(fā)該方法。

      (7)onKeyUp(int,KeyEvent):當(dāng)松開某個鍵時觸發(fā)該方法。

      (8)onTouchEvent(MotionEvent):當(dāng)發(fā)生觸摸屏事件時觸發(fā)該方法。

      2 柱狀圖組件的設(shè)計

      2.1柱狀圖組件的空間布局設(shè)計

      柱狀圖組件的空間布局由標(biāo)題區(qū)、Y軸區(qū)、X軸區(qū)、繪制區(qū)、CheckBox區(qū)五個區(qū)域組成。設(shè)計如圖1所示。標(biāo)題區(qū)用來繪制柱狀圖的標(biāo)題,Y軸區(qū)用來繪制Y軸的線條、Y軸的刻度、Y軸的單位,X軸區(qū)用來繪制X軸的線條、X軸的刻度、X軸的單位,繪制區(qū)用來繪制柱狀圖,CheckBox區(qū)用來顯示多選按鈕,本文設(shè)計的柱狀圖組件支持多組柱狀圖的繪制,可以根據(jù)多選按鈕的選擇狀態(tài)來控制柱狀圖的顯示。

      圖1 空間布局設(shè)計圖

      2.2柱狀圖寬度的計算公式

      本文設(shè)計的柱狀圖組件,可以在X軸的每一個刻度的地方顯示多條柱狀圖。若設(shè)計不好,不同刻度的柱狀圖可能會發(fā)生覆蓋的情況,所以,一定要對每條柱狀圖的寬度進(jìn)行計算。每條柱狀圖寬度的計算公式如下:

      其中,Wbar表示每條柱狀寬度;Xlen表示X軸長度;Xuc表示X軸的刻度數(shù);Bdis表示柱狀圖間距;Xbcpu表示X軸每一個刻度對應(yīng)的柱狀圖條數(shù)。

      3 柱狀圖組件的實(shí)現(xiàn)

      3.1顏色值轉(zhuǎn)換方法

      為了方便用戶使用,用戶在設(shè)置顏色值時可以用形如“#AARRGGBB”或“#RRGGBB”的字符串表示。其中,’#’是一個標(biāo)志符;“AA”是兩位十六進(jìn)制字符,表示顏色的alpha分量;”RR”是兩位十六進(jìn)制字符,表示顏色的red分量;“GG”是兩位十六進(jìn)制字符,表示顏色的green分量;“BB”是兩位十六進(jìn)制字符,表示顏色的blue分量[3]。在繪制圖形時,Android代碼不支持這樣的表示形成,只支持用int類型來表示顏色分量[4]。所以,需要一個方法把形如“#AARRGGBB”或“#RRGGBB”的字符串值轉(zhuǎn)換為四個int類型的值。該方法的核心代碼如下:

      3.2 onDraw方法的關(guān)鍵代碼

      以下程序片段是重寫onDraw方法的關(guān)鍵代碼,這一部分的作用是在繪制區(qū)繪制柱狀圖。

      4 實(shí)驗(yàn)

      我們選擇的實(shí)驗(yàn)環(huán)境為:操作系統(tǒng)為Android4.0,移動終端的屏幕尺寸為4寸屏,分辨率為480×800,CPU為ARM(主頻為2.3GHz),內(nèi)存為2G。實(shí)驗(yàn)效果如圖2、圖3所示。柱狀圖組件的調(diào)用實(shí)驗(yàn)效果良好,布局整齊,響應(yīng)速度快,用戶體驗(yàn)好。下面的多選按鈕的文本顏色和對應(yīng)數(shù)據(jù)的柱狀圖顏色一致,如圖2所示,“2014年度”用的是紅色,對應(yīng)柱狀圖的顏色也紅色;“2015年度”用的是綠色,對應(yīng)柱狀圖的顏色也綠色;“2016年度”用的是藍(lán)色,對應(yīng)柱狀圖的顏色也藍(lán)色。該柱狀圖組件可以通過下面的多選按鈕選項(xiàng)的選擇來顯示相應(yīng)的柱狀圖。如圖3所示,“2016年度”的按鈕沒有被選中,在繪制區(qū)只顯示成選中狀態(tài)的“2014年度”和“2015年度”對應(yīng)的柱狀圖。

      圖2 實(shí)驗(yàn)效果圖一

      圖3 實(shí)驗(yàn)效果圖二

      5 結(jié)語

      本文從現(xiàn)有技術(shù)的角度出發(fā),提出一種靈活的、自定義的柱狀圖組件的設(shè)計實(shí)現(xiàn)方法,經(jīng)過實(shí)驗(yàn)測試,效果良好,布局整齊,響應(yīng)速度快。雖然能滿足很多移動應(yīng)用開發(fā)者的需要,但還是存在一些缺點(diǎn),該柱狀圖組件還沒有實(shí)現(xiàn)簇狀和堆積的效果,在以后的研究工作中,我們將在這些方面做深入研究。

      [1]馬崇華,方嬌莉.信息處理技術(shù)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2009.7.

      [2]左軍.Android程序設(shè)計經(jīng)典教程[M].北京:清華大學(xué)出版社,2015.4.

      [3]王鵬杰,霍建同.Android高級編程[M].北京:清華大學(xué)出版社,2010.6.

      [4]李剛.瘋狂Android講義(第2版)[M].北京:電子工業(yè)出版社,2013.4.

      Design and Implementation of the Bar Chart Component Based on the Android Platform

      GAO Yi,YANG Ke-guang,WANG Xin
      (College of Arts and Sciences,Yunnan Normal University,Kunming650222)

      In lots of mobile application development,developers can use bar chart.However,Android platform does not provide this kind of components.Proposes a bar chart component for design and implementation method based on Android platform,the experimental effect of bar chart is good,this is a very meaningful for the development of mobile applications.

      Android Platform;Bar Chart;Componen

      云南省教育廳科學(xué)研究基金項(xiàng)目(No.2015Y523)

      1007-1423(2016)16-0077-04DOI:10.3969/j.issn.1007-1423.2016.16.021

      高毅(1980-),男,云南宣威人,碩士,講師,研究方向?yàn)槌绦蛟O(shè)計方法、編譯技術(shù)

      楊克光(1977-),男,云南臨滄人,碩士,講師,研究方向?yàn)閿?shù)據(jù)庫技術(shù)、信息系統(tǒng)

      王昕(1975-),男,云南昆明人,碩士,講師,研究方向?yàn)橥ㄐ排c信息系統(tǒng)、網(wǎng)絡(luò)管理

      2016-03-22

      2016-05-16

      猜你喜歡
      柱狀圖刻度繪制
      Art on coffee cups
      繪制和閱讀降水量柱狀圖
      基于Unity3D 的冒泡排序算法動態(tài)可視化設(shè)計及實(shí)現(xiàn)
      歐姆表的刻度真的不均勻嗎?
      ——一個解釋歐姆表刻度不均勻的好方法
      放學(xué)后
      童話世界(2018年17期)2018-07-30 01:52:02
      被吃掉刻度的尺子
      誰大誰小
      測量三字歌
      基于Excel-VBA的深水井柱狀圖繪制程序的設(shè)計和實(shí)現(xiàn)
      在轉(zhuǎn)變中繪制新藍(lán)圖
      新宁县| 肥城市| 富裕县| 锡林郭勒盟| 高安市| 大宁县| 龙口市| 丰顺县| 绵竹市| 安乡县| 昭平县| 阳朔县| 嵩明县| 水富县| 东阳市| 浙江省| 新干县| 延津县| 南靖县| 广昌县| 博兴县| 福鼎市| 余姚市| 辽中县| 文化| 志丹县| 自贡市| 绍兴县| 和平区| 黔东| 南昌县| 栾城县| 淮安市| 和硕县| 嘉祥县| 平定县| 眉山市| 巴彦淖尔市| 长顺县| 乌海市| 祁阳县|