編輯:關於Android編程
1. 繼承自ViewGroup或Layout ,自定義設置子view的位置、尺寸等,用於組合一些組件,產生一個復合組件
2. 繼承自已有的widget View,用於擴展現有組件的功能
3. 繼承自View ,完全自定義一個組件
public CustomView2(Context context) {//直接在代碼中調用時,使用該函數 super(context); } public CustomView2(Context context, AttributeSet attrs) {//在xml中使用自定義view時,使用這個函數 super(context, attrs); } public CustomView2(Context context, AttributeSet attrs, int defStyle) {//可以由上一個函數中手動調用 super(context, attrs, defStyle); }自定義函數中的attrs表示view的屬性集,defStyle表示默認的屬性資源集的id
在xml中使用自定義view的流程:
public CustomView1(Context context, AttributeSet attrs) { super(context, attrs); //atts 包括 TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.customview1); //系統會在自定義屬性前加上它所屬的declare-styleable 的name_ int color = array.getColor(R.styleable.customview1_color, Color.WHITE); float rotation = array.getFloat(R.styleable.customview1_rotation, 0f); float score = array.getFraction(R.styleable.customview1_score, 0, 13, 10); array.recycle();//回收 System.out.println("color=" + color + ", rotation=" + rotation + ", score=" + score); setBackgroundColor(color); }
研究了一下android的apk的簽名和代碼的混淆打包,如果不混淆打包,那麼apk可以直接被人反編譯出來查看源碼,混淆打包雖然還是能看懂,但是沒有那麼好懂了,至少要話費些
1、Handler的由來當程序第一次啟動的時候,Android會同時啟動一條主線程( Main Thread)來負責處理與UI相關的事件,我們叫做UI線程。Android
Android系統架構Linux內核層。Android系統是基於Linux 2.6內核的,這一層為Android設備的各種硬件提供了底層的驅動,如顯示驅動、音頻驅動、照相
在Android3.0之後,Google對UI導航設計上進行了一系列的改革,其中有一個非常好用的新功能就是引入的ActionBar,他用於取代3.0之前的標題欄,並提供更