Android 自定義可以滾動的ViewGroup

2021-07-13 20:34:42 字數 1271 閱讀 5574

自定義乙個viewgroup,能夠實現scrollerview的部分功能,並且能夠實現黏性效果,小於一定距離恢復到原來位置,大於一定距離滑動到下乙個view。

public class myscrollview extends viewgroup 

public myscrollview (context context, attributeset attrs)

public myscrollview (context context, attributeset attrs, int defstyleattr)

private void initview(context context)

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)

} @override

protected void onlayout(boolean changed, int left, int top, int right, int bottom)

} }@override

public boolean ontouchevent(motionevent event)

int dy = mlasty - y;

// y偏移小於0 滑動已經到上部頂端

if (getscrolly() < 0)

// 滑動已經到下部頂端

if (getscrolly() > getheight() - mscreenheight)

// 滑動相對位移

scrollby(0, dy);

mlasty = y;

break;

case motionevent.action_up:

mend = getscrolly();

int dscrolly = mend - mstart;

if (dscrolly > 0) else

} else else

}break;

} postinvalidate();

return true;

} // 呼叫startscroll()是不會有滾動效果的,只有在computescroll()獲取滾動情況,做出滾動的響應

// computescroll在父控制項執行drawchild時,會呼叫這個方法

@override

public void computescroll()

}}

自定義滾動軸

webkit 這個是谷歌瀏覽器的字首,自定義滾動軸只有谷歌瀏覽器支援。webkit scrollbar 滾動軸整體 webkit scrollbar thumb 滑塊 webkit scrollbar track 滑動軌道 webkit scrollbar button 兩端按鈕 webkit sc...

Android自定義控制項 自定義屬性

自定義屬性的過程 1.在res values資料夾中建立attrs的xml檔案。2.寫入標籤,定義子標籤attr,放入自定義屬性的名稱。format 可以用 來同時使用 1 reference 參考某一資源id 2 color 顏色值 3 boolean 布林值 4 dimension 尺寸值 帶有...

Android自定義View 自定義元件

自繪控制項也分兩種,自定義元件和自定義容器,自定義元件是繼承view類,自定義容器時繼承viewgrounp 今天主要分析下自定義元件 還是舉個例子來的實際些,假如我們要畫乙個最簡單的textview,首先想到的就是canvas.drawtext 方法,怎麼畫了?還是得一步一步來 1 寫乙個myte...