国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android編程實現自定義控件的方法示例

2019-12-12 02:37:04
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程實現自定義控件的方法。分享給大家供大家參考,具體如下:

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

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

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:orientation="horizontal" >  <ImageView    android:id="@+id/imageView1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_gravity="center_vertical"    android:paddingBottom="5dip"    android:paddingLeft="40dip"    android:paddingTop="5dip"    android:src="@drawable/right_icon" />  <TextView    android:id="@+id/textView1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_gravity="center_vertical"    android:layout_marginLeft="8dip"    android:text="確定"    android:textColor="#000000" /></LinearLayout>

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

public class ImageBtn extends LinearLayout {  private ImageView imageView;  private TextView textView;  public ImageBtn(Context context) {    super(context);    // TODO Auto-generated constructor stub  }  public ImageBtn(Context context, AttributeSet attrs) {    super(context, attrs);    // TODO Auto-generated constructor stub    LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    inflater.inflate(R.layout.imagebtn, this);    imageView=(ImageView) findViewById(R.id.imageView1);    textView=(TextView)findViewById(R.id.textView1);  }  /**   * 設置圖片資源   */  public void setImageResource(int resId) {    imageView.setImageResource(resId);  }  /**   * 設置顯示的文字   */  public void setTextViewText(String text) {    textView.setText(text);  }}

在需要使用這個自定義控件的layout中加入這控件,只需要在xml中加入即可。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:orientation="horizontal" >  <cn.com.karl.view.ImageBtn    android:id="@+id/btn_right"    android:layout_height="wrap_content"    android:layout_width="wrap_content"    android:background="@drawable/btn"    />  <cn.com.karl.view.ImageBtn    android:id="@+id/btn_error"    android:layout_marginLeft="5dp"    android:layout_height="wrap_content"    android:layout_width="wrap_content"    android:background="@drawable/btn"    /></LinearLayout>

這里用到了背景圖片 在drawable/btn.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" >  <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/btn_normal"></item>  <item android:state_pressed="true" android:drawable="@drawable/btn_white"></item>  <item android:state_checked="true" android:drawable="@drawable/btn_white"></item>  <item android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/btn_normal"></item></selector>

最后在activity中設置該控件,和其他控件差不多:

public class IdentifyButtonActivity extends Activity {  private ImageBtn imageBtn1;  private ImageBtn imageBtn2;  @Override  protected void onCreate(Bundle savedInstanceState) {    // TODO Auto-generated method stub    super.onCreate(savedInstanceState);    setContentView(R.layout.identifybutton);    imageBtn1=(ImageBtn) this.findViewById(R.id.btn_right);    imageBtn2=(ImageBtn) this.findViewById(R.id.btn_error);    imageBtn1.setTextViewText("確定");    imageBtn2.setTextViewText("取消");    imageBtn1.setImageResource(R.drawable.right_icon);    imageBtn2.setImageResource(R.drawable.error_icon);    imageBtn1.setOnClickListener(new View.OnClickListener() {      public void onClick(View v) {        // TODO Auto-generated method stub        Toast.makeText(getApplicationContext(), "點擊的正確按鈕", 1).show();      }    });    imageBtn2.setOnClickListener(new View.OnClickListener() {      public void onClick(View v) {        // TODO Auto-generated method stub        Toast.makeText(getApplicationContext(), "點擊的錯誤按鈕", 1).show();      }    });  }}

最后看看我們自定義控件的效果吧!

點擊后還有按下按鈕的效果。

更多關于Android相關內容感興趣的讀者可查看本站專題:《Android控件用法總結》、《Android開發入門與進階教程》、《Android視圖View技巧總結》、《Android編程之activity操作技巧總結》、《Android數據庫操作技巧總結》及《Android資源操作技巧匯總

希望本文所述對大家Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄陵县| 张掖市| 舒城县| 双鸭山市| 南和县| 平乐县| 调兵山市| 玛沁县| 宝山区| 镇雄县| 长子县| 桦川县| 海盐县| 望城县| 黔西县| 怀集县| 高淳县| 海丰县| 台安县| 永德县| 娱乐| 肇东市| 勃利县| 寿宁县| 浦北县| 镇安县| 班玛县| 新营市| 大厂| 马关县| 资溪县| 碌曲县| 大兴区| 嘉峪关市| 松滋市| 武威市| 涟源市| 丹棱县| 手游| 麦盖提县| 隆化县|