Android 輕量級(jí)的折線圖項(xiàng)目 - CurveView

個(gè)人博客地址: 斯科特安的時(shí)間

CurveView 是一個(gè)輕量級(jí)悔橄、可高度定制化的折線圖項(xiàng)目蔚万。

效果演示

顯示全部 滾動(dòng)支持
顯示全部
滾動(dòng)支持

特點(diǎn)

  • 支持樣式定制
  • 使用 adapter 方式集成數(shù)據(jù),用法簡(jiǎn)單,極易理解
  • 支持點(diǎn)上 8 個(gè)方向同時(shí)添加文字
  • 支持顯示全部長(zhǎng)度或手動(dòng)拖動(dòng)

用法

1. 導(dǎo)入依賴

在項(xiàng)目build.gradle中添加:

allprojects {
  repositories {
    ...
    maven { url 'https://jitpack.io' }
  }
}

添加依賴

dependencies {
        compile 'com.github.auv1107:CurveView:a0e576c041'
}

2. 添加 CurveView

<com.sctdroid.app.uikit.CurveView
    android:id="@+id/curve_view"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    app:backgroundColor="#16b7df"
    app:corner="1px"
    app:contentPaddingStart="40dp"
    app:contentPaddingEnd="40dp"
    app:contentPaddingBottom="20dp"
    app:contentPaddingTop="20dp"
    app:strokeWidth="1px"
    app:showXLine="false"
    app:showXText="true"
    app:contentColor="@android:color/white"
    app:dotTextColor="@android:color/white"
    app:dotTextSize="8sp"
    app:axisTextSize="9sp"
    app:axisTextColor="@android:color/white"
    app:dotTextGravity="center_horizontal|bottom"
    app:showAll="true"
    app:unitWidth="100dp"
    />

屬性說明

屬性 類型 說明
backgroundColor color 背景色科平,暫只支持顏色背景
corner dimension 折線平滑度,0 為尖銳的折線榔组,越大越平滑
contentPaddingStart dimension 左(開始點(diǎn))內(nèi)容邊距
contentPaddingEnd dimension 右(結(jié)束點(diǎn))內(nèi)容邊距
contentPaddingBottom dimension 下內(nèi)容邊距
contentPaddingTop dimension 上內(nèi)容邊距
strokeWidth dimension 折線寬度
showXLine boolean 是否繪制 x 軸
showXText String 是否顯示 x 軸文字
contentColor color 折線和坐標(biāo)軸顏色
dotTextColor color 點(diǎn)標(biāo)記文字顏色
dotTextSize dimension 點(diǎn)標(biāo)記文字尺寸
axisTextSize dimension 坐標(biāo)軸文字尺寸
axisTextColor color 坐標(biāo)軸文字顏色
showAll boolean 是否顯示所有點(diǎn)雳殊。true,顯示所有點(diǎn)臀晃。false觉渴,每格寬度由 unitWidth 指定,支持手指拖動(dòng)
unitWidth dimension x 軸上相鄰兩點(diǎn)寬度徽惋,僅在 showAllfalse 時(shí)有效

3. 添加 Adapter

CurveView curveView = (CurveView) findViewById(R.id.curve_view);
curveView.setAdapter(new CurveView.Adapter() {

    String text = "吾生也有涯案淋,而知也無涯";

    /**
     * @return 點(diǎn)的數(shù)量
     */
    @Override
    public int getCount() {
        return 7;
    }

    /**
     * level 是 y 軸高度,在 minLevel 和 maxLevel 之間
     * @param position
     * @return 返回當(dāng)前 position 的 level
     */
    @Override
    public int getLevel(int position) {
        return (int) (15 + (Math.random() * 20));
    }

    /**
     * @return y 軸下限
     */
    @Override
    public int getMinLevel() {
        return 15;
    }

    /**
     * @return y 軸上限
     */
    @Override
    public int getMaxLevel() {
        return 35;
    }

    /**
     * 設(shè)置點(diǎn)上的文字险绘,每個(gè)mark是一個(gè)踢京,可同時(shí)設(shè)置點(diǎn)的 8 個(gè)方向的文字
     * 注意: Gravity 應(yīng)使用 CurveView.Gravity 類
     *
     * @param position
     * @return
     */
    @Override
    public Set<CurveView.Mark> onCreateMarks(int position) {
        Set<CurveView.Mark> marks = new HashSet<CurveView.Mark>();
        CurveView.Mark mark = new CurveView.Mark(getLevel(position) + "°", Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 20, 0, 0);
        CurveView.Mark mark1 = new CurveView.Mark(getLevel(position) + "°", Gravity.START | Gravity.CENTER_HORIZONTAL, 0, 0, 0, 20);
        marks.add(mark);
        marks.add(mark1);
        return marks;
    }

    /**
     * 獲取第 i 個(gè)點(diǎn) x 軸上的文字
     * @param i
     * @return
     */
    @Override
    public String getXAxisText(int i) {
        return text.substring(i, i + 1);
    }
});

項(xiàng)目地址: 輕量級(jí)、可高度定制化的折線圖]

2017.6.15
斯科特安

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宦棺,一起剝皮案震驚了整個(gè)濱河市瓣距,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌代咸,老刑警劉巖蹈丸,帶你破解...
    沈念sama閱讀 212,080評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異呐芥,居然都是意外死亡逻杖,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,422評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門思瘟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弧腥,“玉大人,你說我怎么就攤上這事潮太」芴拢” “怎么了?”我有些...
    開封第一講書人閱讀 157,630評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵铡买,是天一觀的道長(zhǎng)更鲁。 經(jīng)常有香客問我,道長(zhǎng)奇钞,這世上最難降的妖魔是什么澡为? 我笑而不...
    開封第一講書人閱讀 56,554評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮景埃,結(jié)果婚禮上媒至,老公的妹妹穿的比我還像新娘顶别。我一直安慰自己,他們只是感情好拒啰,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,662評(píng)論 6 386
  • 文/花漫 我一把揭開白布驯绎。 她就那樣靜靜地躺著,像睡著了一般谋旦。 火紅的嫁衣襯著肌膚如雪剩失。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,856評(píng)論 1 290
  • 那天册着,我揣著相機(jī)與錄音拴孤,去河邊找鬼。 笑死甲捏,一個(gè)胖子當(dāng)著我的面吹牛演熟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播司顿,決...
    沈念sama閱讀 39,014評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼芒粹,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了免猾?” 一聲冷哼從身側(cè)響起是辕,我...
    開封第一講書人閱讀 37,752評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤囤热,失蹤者是張志新(化名)和其女友劉穎猎提,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旁蔼,經(jīng)...
    沈念sama閱讀 44,212評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锨苏,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,541評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了棺聊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伞租。...
    茶點(diǎn)故事閱讀 38,687評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖限佩,靈堂內(nèi)的尸體忽然破棺而出葵诈,到底是詐尸還是另有隱情,我是刑警寧澤祟同,帶...
    沈念sama閱讀 34,347評(píng)論 4 331
  • 正文 年R本政府宣布作喘,位于F島的核電站,受9級(jí)特大地震影響晕城,放射性物質(zhì)發(fā)生泄漏泞坦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,973評(píng)論 3 315
  • 文/蒙蒙 一砖顷、第九天 我趴在偏房一處隱蔽的房頂上張望贰锁。 院中可真熱鬧赃梧,春花似錦、人聲如沸豌熄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,777評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)房轿。三九已至粤攒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間囱持,已是汗流浹背夯接。 一陣腳步聲響...
    開封第一講書人閱讀 32,006評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留纷妆,地道東北人盔几。 一個(gè)月前我還...
    沈念sama閱讀 46,406評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像掩幢,于是被迫代替她去往敵國(guó)和親逊拍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,576評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,806評(píng)論 25 707
  • 太長(zhǎng)了际邻,還是轉(zhuǎn)載吧...今天在看博客的時(shí)候芯丧,無意中發(fā)現(xiàn)了@Trinea在GitHub上的一個(gè)項(xiàng)目Android開源...
    龐哈哈哈12138閱讀 20,155評(píng)論 3 283
  • 3月2日了,馬上就要開學(xué)了世曾。我坐著大巴往深山谷去缨恒,那是一個(gè)作業(yè),寫作轮听,去深山谷寫骗露。 我坐在櫻花樹下,看著遠(yuǎn)方的美...
    櫻花希海薇銘閱讀 494評(píng)論 0 1
  • 大愛血巍,哈哈萧锉,看我給它們起的名字,述寡,柿隙,,鲫凶,禀崖,, 有和我一樣喜歡小動(dòng)物們的小可愛嗎掀序,舉起你們的小手手帆焕。。 小貓咪 正在...
    啊醒醒閱讀 331評(píng)論 0 3
  • 6.30 星期五 今天的任務(wù)是加附近人,這件事之前也干過叶雹,也聊過一些人财饥,但是經(jīng)常只是閑聊,聊不到重點(diǎn)折晦,今天我結(jié)合前...
    teamo1206閱讀 290評(píng)論 0 0