chkconfig name on
2)其他使用命令啟動的程序
在/etc/rc.local中加入:
有時,Android系統(tǒng)控件無法滿足我們的需求,因此有必要自定義View。具體方法參見官方開發(fā)文檔:http://developer.android.com/guide/topics/ui/custom-components.html
一般來說,自定義控件都會去重寫View的onMeasure方法,因為該方法指定該控件在屏幕上的大小。
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
onMeasure傳入的兩個參數(shù)是由上一層控件傳入的大小,有多種情況,重寫該方法時需要對計算控件的實際大小,然后調(diào)用setMeasuredDimension(int, int)設置實際大小。
onMeasure傳入的widthMeasureSpec和heightMeasureSpec不是一般的尺寸數(shù)值,而是將模式和尺寸組合在一起的數(shù)值。我們需要通過int mode = MeasureSpec.getMode(widthMeasureSpec)得到模式,用int size = MeasureSpec.getSize(widthMeasureSpec)得到尺寸。
mode共有三種情況,取值分別為MeasureSpec.UNSPECIFIED, MeasureSpec.EXACTLY, MeasureSpec.AT_MOST。
MeasureSpec.EXACTLY是精確尺寸,當我們將控件的layout_width或layout_height指定為具體數(shù)值時如andorid:layout_width="50dip",或者為FILL_PARENT是,都是控件大小已經(jīng)確定的情況,都是精確尺寸。
MeasureSpec.AT_MOST是最大尺寸,當控件的layout_width或layout_height指定為WRAP_CONTENT時,控件大小一般隨著控件的子空間或內(nèi)容進行變化,此時控件尺寸只要不超過父控件允許的最大尺寸即可。因此,此時的mode是AT_MOST,size給出了父控件允許的最大尺寸。
MeasureSpec.UNSPECIFIED是未指定尺寸,這種情況不多,一般都是父控件是AdapterView,通過measure方法傳入的模式。
因此,在重寫onMeasure方法時要根據(jù)模式不同進行尺寸計算。下面代碼就是一種比較典型的方式: