歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android自定義控件實例

很多時候Android常用的控件不能滿足我們的需求,那麼我們就需要自定義一個控件了。今天做了一個自定義控件的實例,來分享下。

首先定義一個layout實現按鈕內部布局:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="horizontal" >  
  6.   
  7.     <ImageView  
  8.         android:id="@+id/imageView1"  
  9.         android:layout_width="wrap_content"  
  10.         android:layout_height="wrap_content"  
  11.         android:layout_gravity="center_vertical"  
  12.         android:paddingBottom="5dip"  
  13.         android:paddingLeft="40dip"  
  14.         android:paddingTop="5dip"  
  15.         android:src="@drawable/right_icon" />  
  16.   
  17.     <TextView  
  18.         android:id="@+id/textView1"  
  19.         android:layout_width="wrap_content"  
  20.         android:layout_height="wrap_content"  
  21.         android:layout_gravity="center_vertical"  
  22.         android:layout_marginLeft="8dip"  
  23.         android:text="確定"  
  24.         android:textColor="#000000" />  
  25.   
  26. </LinearLayout>  

接下來寫一個類繼承LinearLayout,導入剛剛的布局,並且設置需要的方法,從而使的能在代碼中控制這個自定義控件內容的顯示。

  1. public class ImageBtn extends LinearLayout {  
  2.   
  3.     private ImageView imageView;  
  4.     private TextView  textView;  
  5.       
  6.     public ImageBtn(Context context) {  
  7.         super(context);  
  8.         // TODO Auto-generated constructor stub  
  9.     }  
  10.     public ImageBtn(Context context, AttributeSet attrs) {  
  11.         super(context, attrs);  
  12.         // TODO Auto-generated constructor stub  
  13.         LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
  14.         inflater.inflate(R.layout.imagebtn, this);  
  15.         imageView=(ImageView) findViewById(R.id.imageView1);  
  16.         textView=(TextView)findViewById(R.id.textView1);  
  17.     }  
  18.       
  19.     /**   
  20.      * 設置圖片資源   
  21.      */    
  22.     public void setImageResource(int resId) {    
  23.         imageView.setImageResource(resId);    
  24.     }    
  25.     
  26.     /**   
  27.      * 設置顯示的文字   
  28.      */    
  29.     public void setTextViewText(String text) {    
  30.         textView.setText(text);    
  31.     }    
  32.   
  33. }  
Copyright © Linux教程網 All Rights Reserved