Android中自定義控件

引入布局文件


很多活動中某一個局部布局一致,避免代碼冗余道宅,可以定義一個布局文件魏滚,而在其他布局文件中引入此布局文件,代碼就會變得簡潔

XML布局文件事例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/title_bg" >
    <Button
        android:id="@+id/title_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dip"
        android:background="@drawable/back_bg"
        android:text="Back"
        android:textColor="#fff" />
    <TextView
        android:id="@+id/title_text"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center"
        android:text="This is Title"
        android:textColor="#fff"
        android:textSize="22sp" />
    <Button
        android:id="@+id/title_edit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_margin="5dip"
        android:background="@drawable/edit_bg"
        android:text="Edit"
        android:textColor="#fff" />
</LinearLayout>

在XML文件中引入一個布局文件代碼:

<include layout="ID" />

自定義控件


引入一個布局文件谦秧,布局文件中的某些控件在活動中的功能一致,我們就可以自定義一個控件撵溃,為此控件中的控件添加動作疚鲤,響應事件,減少代碼冗余

  • 創(chuàng)建自定義控件
    上面我們使用的是LinearLayout布局缘挑,這里我們自定義的布局類需要繼承LinearLayout類
public class TitleLayout extends LinearLayout{
  //在布局文件中引入這個控件就會調用這個構造函數(shù)
  public TitleLayout(Context context, AttributeSet attrs){
    //對布局文件進行動態(tài)加載
    LayoutInflater.from(context).inflate(ID, this);
    Button titleBack = (Button) findViewById(R.id.title_back);   
    Button titleEdit = (Button) findViewById(R.id.title_edit);
    titleBack.setOnClickListener(new OnClickListener(){
      @override 
      public void onClick(View v){
        //加入邏輯代碼
      }
    });
  }
}
  • 在布局文件中添加自定義控件

添加自定義控件的方式和添加Android中預定義的控件方式基本一樣集歇,引入自定義控件需要完整路徑(包名+類名)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <!--完整路徑-->
    <com.example.uicustomviews.TitleLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ></com.example.uicustomviews.TitleLayout>
</LinearLayout>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市语淘,隨后出現(xiàn)的幾起案子诲宇,更是在濱河造成了極大的恐慌,老刑警劉巖惶翻,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姑蓝,死亡現(xiàn)場離奇詭異,居然都是意外死亡吕粗,警方通過查閱死者的電腦和手機纺荧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颅筋,“玉大人宙暇,你說我怎么就攤上這事∫楸茫” “怎么了占贫?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長肢簿。 經(jīng)常有香客問我靶剑,道長蜻拨,這世上最難降的妖魔是什么池充? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任桩引,我火速辦了婚禮,結果婚禮上收夸,老公的妹妹穿的比我還像新娘坑匠。我一直安慰自己,他們只是感情好卧惜,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布厘灼。 她就那樣靜靜地躺著,像睡著了一般咽瓷。 火紅的嫁衣襯著肌膚如雪设凹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天茅姜,我揣著相機與錄音闪朱,去河邊找鬼。 笑死钻洒,一個胖子當著我的面吹牛奋姿,可吹牛的內容都是我干的。 我是一名探鬼主播素标,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼称诗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了头遭?” 一聲冷哼從身側響起寓免,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎计维,沒想到半個月后再榄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡享潜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年困鸥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片剑按。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡疾就,死狀恐怖,靈堂內的尸體忽然破棺而出艺蝴,到底是詐尸還是另有隱情猬腰,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布猜敢,位于F島的核電站姑荷,受9級特大地震影響盒延,放射性物質發(fā)生泄漏。R本人自食惡果不足惜鼠冕,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一添寺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧懈费,春花似錦计露、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泞边,卻和暖如春该押,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阵谚。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工蚕礼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人椭蹄。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓闻牡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绳矩。 傳聞我的和親對象是個殘疾皇子罩润,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,841評論 25 707
  • 我們在自定義控件的時候,通常需要定義一些屬性提供給用戶翼馆,類似于一個接口割以,方便用戶直接在xml文件中直接設置某些屬性...
    地球是猿的閱讀 6,474評論 0 5
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件应媚、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,066評論 4 62
  • 作者:張靜如 黛色的屋檐严沥,青黑的磚瓦,早已留下的青苔中姜,小巷中美麗的女子顧盼生光消玄、雙目流轉,一切都在訴說著那古老的傳...
    佩盈閱讀 1,322評論 17 22
  • 有一家餐館丢胚,我至今連名字都不太清楚翩瓜,伙計和老板長啥樣我更是不知道,從西藏回來后携龟,我一直都想說說它兔跌。 它是我在去哲蚌...
    是leauna啊閱讀 663評論 1 0