android 設定控制項的顏色字型的方法

2021-06-18 22:10:59 字數 2122 閱讀 3878

android平台已經給我們提供了很多標準的元件,如:textview、editview、button、imageview、menu等,還有許多布局控制項,常見的有:absolutelayout、linerlayout、relativelayout、tablelayout等。但隨著人們對視覺的需求,基本元件已無法滿足人們求新求異的要求,於是我們常常會自定義元件,用來實現更美觀的ui介面。

實現自定義控制項通常有兩種途徑,一種是繼承view類,重寫其中的重要方法,另一種是繼承viewgroup類,通過重寫父類中的有些方法,達到重新繪製元件的目的。最近做了乙個自定義**控制項的練習,從中總結到一些經驗。在這個練習中,我通過繼承viewgroup類,重新繪製了用於呈現**樣式的容器元件,首先來看一下父類viewgroup。該類有三個構造方法:viewgroup(context context)、viewgroup(context context,attributeset attrs)、viewgroup(context context,attributeset attrs,int defstyle),我們自定義的繼承viewgroup的類需要實現它的至少乙個構造方法。viewgroup中有幾個方法非常重要,這幾個方法更好的幫助我們實現自己的元件的布局與繪製。

1、onlayout方法

該方法用於在容器中如何擺放子控制項,如果不重寫該方法,子控制項將無法在布局控制項中得以展示,該方法有五個引數,用於設定子控制項的上下左右四個邊框的位置,還有乙個標誌位,這個方法也是子類必須實現的,因為該方法是個抽象方法。

2、addview方法

該方法用於在容器元件中新增子控制項

3、dispatchdraw方法

通過該方法,我們可以獲取canvas物件,該物件允許我們在元件上畫任意我們想要的圖形,在這個**控制項中,我們可以在畫布上上**的外邊框及**線

4、getchildcount和getchildat方法

這兩個方法用於獲取該容器控制項中子控制項的數目和位置,便於我們對子控制項的排版和布局

5、onmeasure方法

這個方法是用來測量子控制項大小的,它在onlayout方法之前被呼叫,測量了子控制項的大小尺寸,然後可以繪製子控制項在容器元件中的布局位置

下面直接給出**示例,僅供參考

首先是**控制項的類:

public class tableview extends viewgroup 

public tableview(context context, int row,int col) else if(row==0 || col==0)

else

// 新增子控制項

this.addotherview(context);

} public void addotherview(context context)else

this.addview(view);

} }

} @override

protected void dispatchdraw(canvas canvas) else

} }

public void setrow(int row)

public void setcol(int col)

}

然後我們在activity中使用我們的控制項:

public class mainactivity extends activity implements onclicklistener 

@override

public boolean oncreateoptionsmenu(menu menu)

@override

public void onclick(view v) else if("".equals(col.gettext().tostring()))else

} }

public class tableactivity extends activity 

}

效果圖如下:

Android初級控制項 顏色

在android中,顏色值由透明度alpha和rgb 紅 綠 藍 三原色定義,有八位16進製制數和6位16進製制數。八位編碼相對於六位編碼多了乙個透明度。而編碼中的每一塊都從00 ff,其中00表示 ff數字越大,透明越不明顯,但顏色越來越濃。從布局檔案中獲取名叫tv code six的文字檢視 t...

Android 動態設定控制項文字顏色和背景色

一般我們要實現乙個控制項按壓變背景色,我們會寫selector的xml檔案,比如 控制項背景色選擇器 param context 當前上下文 param idnormal 預設 param idpressed 按壓時 return public static statelistdrawable se...

設定控制項的顏色,字型

package com.oyzz.ch3 6 import android.os.bundle import android.view.view 必須引用 widget.button才能宣告使用button物件 import android.widget.button 必須引用 widget.tex...