Android時間軸控制項 WheelView

2021-09-01 02:25:33 字數 2245 閱讀 4664

在做時間軸或者某些型別的選擇時,有時候設計師會給我們出類似下面的效果:

因此,我們就需要重新自定義scrollview,,也就是移動端常用的時間軸控制項:wheelview

實現方式直接上**:

public class wheelview extends scrollview 

}private context context;

// private scrollview scrollview;

private linearlayout views;

public wheelview(context context)

public wheelview(context context, attributeset attrs)

public wheelview(context context, attributeset attrs, int defstyle)

// string items;

listitems;

private listgetitems()

public void setitems(listlist)

items.clear();

items.addall(list);

// 前面和後面補全

for (int i = 0; i < offset; i++)

initdata();

}// 每頁顯示的數量

public static final int off_set_default = 1;

int offset = off_set_default; // 偏移量(需要在最前面和最後面補全)

int displayitemcount;

int selectedindex = 1; //

int itemheight = 0;//每個條目的高度

int textsize = 20;//每個條目的字型大小

public int getoffset()

public void setoffset(int offset)

public void settextsize(int textsize)

private void init(context context) else

});} else

});}

}} else }};

}int initialy;

runnable scrollertask;

int newcheck = 50;

public void startscrollertask()

private void initdata()

refre****emview(0);

}private textview createview(string item)

return tv;

}@override

protected void onscrollchanged(int l, int t, int oldl, int oldt)

//// } catch (exception e)

refre****emview(t);

if (t > oldt) else

}private void refre****emview(int y) else

// if(remainder > itemheight / 2)else if(scrolldirection == scroll_direction_up)

// }else

}

外面設定屬性和傳資料的使用方式如下:

//設定選中的字型顏色

setchecktextcolor(color.black)

//設定條目字型大小

settextsize(18)

//設定列表資料

setitems(listcontent)

//新增滑動監聽

onwheelviewlistener = object : wheelview.onwheelviewlistener() }}

外面獲取當前選中的條目:

layout_wheelview.seletedindex

自繪時間軸控制項

控制項 標頭檔案 pragma once ctimeaxisctrl class ctimeaxisctrl public cwnd private colorref m clrbackground,m clrtext,m clrgrid,m clrleftarea cfont m fontymd,...

時間軸控制項TimeLineView的實現

首先來看看效果圖吧,可以根據需要設定出很炫的效果 android中經常會用到時間軸,那麼如何實現時間軸呢?首先我們了解時間軸的構成 1 時間球 2 直線 3 位置 下面介紹乙個時間軸實現的開源 把這幾個問題解決再掌握基本的繪製過程就可以實現時間軸了。下面先來看 1 定義屬性,使用者可以自定義的屬性值...

mysql 時間軸 使用MySQL計算時間軸的變化

我是mysql的新手,我需要你的幫助.我有一張包含類似資料的 robotposx robotposy robotposdir robotshortestpath 0.1 0.2 15 1456 0.2 0.3 30 1456 0.54 0.67 15 1456 0.68 0.98 22 1234 0...