自定義View上(做乙個可拖動的控制項)

2021-08-17 21:44:24 字數 2367 閱讀 9793

布局:
<?

xml version="1.0"encoding="utf-8"?>

<android.support.constraint.constraintlayoutxmlns:android=""xmlns:=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.day_0330_view.mainactivity">

<com.example.day_0330_view.circleviewandroid:layout_width="wrap_content"android:layout_height="wrap_content"/>

android.support.constraint.constraintlayout>

編寫自定義view

importandroid.content.context;

importandroid.graphics.canvas;

importandroid.graphics.color;

importandroid.graphics.paint;

importandroid.support.annotation.nullable;

importandroid.util.attributeset;

importandroid.view.motionevent;

importandroid.view.view;

public classcircleviewextendsview

//當我們在布局檔案裡去引用這個類的時候

publiccircleview(context context, @nullable attributeset attrs)

//當我們在布局檔案裡去用這個類時就會呼叫 defstyleattr可以設定他的樣式

publiccircleview(context context, @nullable attributeset attrs,intdefstyleattr)

@override

protected voidondraw(canvas canvas)

@override

public booleanontouchevent(motionevent event)

//重新繪製, 只要呼叫此方法,就會呼叫ondraw()

// invalidate(); 只能在主線程裡面去呼叫,不能在子執行緒裡面去呼叫

//既能在主線程裡面去呼叫,也能在子執行緒裡面去呼叫

postinvalidate();

//事件自己消費掉

return true;

}}

使用xib自定義乙個view

今天專案中需要自定義的table區頭和區腳,而又無法直接在ib中實現自定義的樣式,所以建立了乙個xib自定義的view 去實現,具體步驟為 首先建立view 類,無法攜帶xib模板 然後單獨建立乙個view 的ib模板 把calss 關聯起來 修改屬性控制器size型別為freeform,為了自定義...

用Xib自定義乙個View

1.新建乙個繼承於view的類,再建乙個有view的xib檔案,選中這個xib的file s owner,修改custom class.2.把size選成freeform,這樣你就可以隨意的調整view的大小了。3.在xib上布局好 4.下面就是如何使用這個xib。有兩種方法。使用 方法初始化。先把...

自定義View,建立乙個小圓點,單擊可以拖動

xml version 1.0 encoding utf 8 xmlns android xmlns xmlns tools android layout width match parent android layout height match parent tools context com....