android 自定義View的屬性

2021-06-03 15:03:29 字數 1595 閱讀 6845

好文章 儲存下分享:對於android系統的自定義view可能大家都熟悉了,對於自定義view的屬性新增,以及android的layout的命名空間問題,很多網友還不是很清楚,今天android123一起再帶大家溫習一下  cwjview myview=new cwjview(context);  如果用於遊戲或整個窗體的介面,我們可能直接在oncreate中setcontentview(myview); 當然如果是控制項,我們可能會需要從layout的xml中宣告,比如    當然,我們也可以直接從父類宣告比如  上面我們僅用了父類view的兩個屬性,均來自android命名空間,而名稱為layout_width或layout_height,我們自定義的控制項可能有更多的功能,比如    我們可以看到上面的三個屬性,是我們自定義的。作為標準xml規範,可能還包含了類似 xmlns:android=""  這樣的語句,對於定義完整的view,我們的命名空間為cwj,這裡可以寫為 xmlns:cwj= 或 xmlns:cwj=都可以。  對於定義的cwj命名空間和age、university以及city的三個屬性我們如何定義呢? 在工程的res/values目錄中我們新建乙個cwj_attr.xml檔案,編碼方式為utf-8是乙個好習慣,內容如下<?xml version="1.0" encoding="utf-8" ?>

這裡我們可能對format不是很熟悉,目前android系統內建的格式型別有integer比如progressbar的進度值,float比如ratingbar的值可能是3.5顆星,boolean比如togglebutton的是否勾選,string比如textview的text屬性,當然除了我們常見的基礎型別外,android的屬性還有特殊的比如color是用於顏色屬性的,可以識別為#ff0000等型別,當然還有dimension的尺寸型別,比如23dip,15px,18sp的長度單位,還有一種特殊的為reference,一般用於引用@+id/cwj @drawable/***這樣的型別。  當然什麼時候用reference呢? 我們就以定義乙個顏色為例子,  這裡我們用了邏輯或的運算子,定義的紅色是顏色型別的,同時可以被引用  當然,對於我們自定義的類中,我們需要使用乙個名為obtainstyledattributes的方法來獲取我們的定義。在我們自定義view的構造方法(context context, attributeset attrs)的過載型別中可以用  public cwjview(context context, attributeset attrs) 這樣類的全域性成員變數 mage、mcity就獲取了我們需要的內容,當然根據layout中的數值我們自定義的cwjview需要動態的處理一些資料的情況,可以使用attributeset類的getattributeresourcevalue方法獲取。 public cwjview(context context, attributeset attrs)

{super(context, attrs);

resid = attrs.getattributeresourcevalue("cn.com.android123.cwjview", "age", 100);  

resid = attrs.getattributeresourcevalue("cn.com.android123.cwjview", "city", "shanghai");

//resid就可以任意使用了

Android自定義View 自定義元件

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

Android自定義View 一 View的測量

想要讓系統繪製出你所需要的圖形,就必須告訴系統view的大小,所以,在繪製view時,先實現view的onmesure 方法。在測量view之前,要先了解measurespec這個類,measurespec物件中包含了測量的模式和測量的大小 measurespec.exactly 精確模式 當我們將...

Android自定義View實現

android自定義view實現很簡單 繼承view或者其子類,重寫建構函式 ondraw,onmeasure 等函式,根據繼承的類的不同可能有所不同。如果自定義的view需要有自定義的屬性,需要在values下建立attrs.xml。在其中定義你的屬性。在使用到自定義view的xml布局檔案中需要...