android 打造不同的Seekbar

2021-07-15 03:07:57 字數 1975 閱讀 5772

最近專案需要用到雙向的seekbar,網上找了好多野不能達到要求,偶然一次機會看到了大眾點評的例子,然後我最他做了優化,並對常用的seekbar做了總結.

向上兩張圖:

比如雙向seekbar

public class ******rangeseekbar extends view 

public ******rangeseekbar(context context, attributeset attrs, int defstyle)

private void init(context context, attributeset attrs, int defstyle)

private void initview()

private void initattr(context context, attributeset attrs, int defstyle)

private int measurewidth(int measurespec) else

}return result;

}private int measureheight(int measureheight) else

}return result;

}@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)

@override

protected void ondraw(canvas canvas)

private void drawtext(canvas canvas)

@override

public boolean ontouchevent(motionevent event)

// 表示當前按下的滑塊是左邊的滑塊

if (math.abs(xpos - lowercenterx) < bmpwidth / 2)

// //表示當前按下的滑塊是右邊的滑塊

if (math.abs(xpos - uppercenterx) < bmpwidth / 2)

// 單擊左邊滑塊的左邊線條時,左邊滑塊滑動到對應的位置

if (xpos >= linestart && xpos <= lowercenterx - bmpwidth / 2)

// 單擊右邊滑塊的右邊線條時, 右邊滑塊滑動到對應的位置

if (xpos <= lineend && xpos >= uppercenterx + bmpwidth / 2)

break;

case motionevent.action_move:

if (islowermoving)

}if (isuppermoving)

}break;

case motionevent.action_up:

islowermoving = false;

isuppermoving = false;

break;

default:

break;

}return true;

}private int computerange(int range)

private void updaterange()

}public void setonrangechangedlistener(

onrangechangedlistener onrangechangedlistener)

public inte***ce onrangechangedlistener

}

為了方便大家使用我使用了

自定義屬性方便大家配置。

android 打造不同的Seekbar

最近專案需要用到雙向的seekbar,網上找了好多野不能達到要求,偶然一次機會看到了大眾點評的例子,然後我最他做了優化,並對常用的seekbar做了總結.向上兩張圖 比如雙向seekbar public class rangeseekbar extends view public rangeseek...

Android 不同Activity之間的資料傳遞

在activity中呼叫另乙個activity時,需要呼叫startactivity intent i 若需要在呼叫另外乙個activity的同時傳遞資料,那麼就需要利用android.os.bundle物件封裝資料的能力,將欲傳遞的資料或引數,通過bundle來傳遞不同intent之間的資料。bu...

Android基礎 完美打造自己的apk

概述 第三步 選擇好要儲存的路徑,我選擇的是桌面,並且在file name項做好自己 的簽名 我寫的是 zjrstart,緊接著後面的選項要選擇jks,用來生成簽名apk的檔案 第四步 在這裡主要是填寫乙個password,aa代表的是個別名,然後其他項隨波 逐流的填上就行了 第五步 在這裡看到ke...