自定義view,獲取xml視圖中自定義的屬性的值

第一步:先在styles.xml文件聲明好自定義view要用到的自定義屬性

示例代碼如下:聲明default_size

<declare-styleable name="SquareView">
        <!--聲明我們的屬性,名稱為default_size,取值類型為尺寸類型(dp,px等)-->
        <attr name="default_size" format="dimension"></attr>
    </declare-styleable>

注:name = SquareView 標識聲明的屬性的歸類

第二步:在xml視圖中使用自定義屬性

示例代碼如下:使用default_size

    <view.SquareView
                android:layout_width="match_parent"
                android:layout_height="100dp"
                android:background="@color/colorPrimary"
                app:default_size="75dp"/>

第三步:在自定義view的類里面獲取聲明的專用屬性的值

示例代碼如下:取出default_size的值

public SquareView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        Log.i(TAG, "在第二個構造函數(shù)");

        /** 獲取自定義屬性值 */
        TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.SquareView);
        int customValue = typedArray.getDimensionPixelSize(R.styleable.SquareView_default_size, 200);
        String logContent = String.format("自定義view默認尺寸大?。?d px",customValue);
        Log.d(TAG, logContent);
    }

注:獲取專用屬性的值,用到了Context類的obtainStyledAttributes()方法,返回的信息被保存在一個TypedArray的類中。然后調(diào)用TypedArray中相應的方法取出自定義屬性的值

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容