最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android編程實(shí)現(xiàn)自定義控件的方法示例

 更新時(shí)間:2017年06月23日 11:14:57   作者:菜鳥(niǎo)筆記  
這篇文章主要介紹了Android編程實(shí)現(xiàn)自定義控件的方法,結(jié)合實(shí)例形式分析了Android自定義控件的布局、功能實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下

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

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

首先定義一個(gè)layout實(shí)現(xiàn)按鈕內(nèi)部布局:

<?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>

接下來(lái)寫(xiě)一個(gè)類繼承LinearLayout,導(dǎo)入剛剛的布局,并且設(shè)置需要的方法,從而使的能在代碼中控制這個(gè)自定義控件內(nèi)容的顯示。

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);
  }
  /**
   * 設(shè)置圖片資源
   */
  public void setImageResource(int resId) {
    imageView.setImageResource(resId);
  }
  /**
   * 設(shè)置顯示的文字
   */
  public void setTextViewText(String text) {
    textView.setText(text);
  }
}

在需要使用這個(gè)自定義控件的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中設(shè)置該控件,和其他控件差不多:

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(), "點(diǎn)擊的正確按鈕", 1).show();
      }
    });
    imageBtn2.setOnClickListener(new View.OnClickListener() {
      public void onClick(View v) {
        // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(), "點(diǎn)擊的錯(cuò)誤按鈕", 1).show();
      }
    });
  }
}

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

點(diǎn)擊后還有按下按鈕的效果。

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android控件用法總結(jié)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android數(shù)據(jù)庫(kù)操作技巧總結(jié)》及《Android資源操作技巧匯總

希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 在Android中創(chuàng)建和使用自定義property的步驟

    在Android中創(chuàng)建和使用自定義property的步驟

    在Android中創(chuàng)建自定義的屬性(Android property)通常用于調(diào)試、性能調(diào)優(yōu)或傳遞應(yīng)用和系統(tǒng)之間的信息,本文給大家介紹了如何在Android中創(chuàng)建和使用自定義property的步驟,需要的朋友可以參考下
    2024-11-11
  • Android SeekBar實(shí)現(xiàn)平滑滾動(dòng)

    Android SeekBar實(shí)現(xiàn)平滑滾動(dòng)

    這篇文章主要為大家詳細(xì)介紹了Android SeekBar實(shí)現(xiàn)平滑滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Android在不使用數(shù)據(jù)庫(kù)的情況下存儲(chǔ)數(shù)據(jù)的方法

    Android在不使用數(shù)據(jù)庫(kù)的情況下存儲(chǔ)數(shù)據(jù)的方法

    這篇文章主要介紹了Android在不使用數(shù)據(jù)庫(kù)的情況下存儲(chǔ)數(shù)據(jù)的方法,涉及Android存儲(chǔ)數(shù)據(jù)的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04
  • Android?IntentFilter的匹配規(guī)則示例詳解

    Android?IntentFilter的匹配規(guī)則示例詳解

    這篇文章主要為大家介紹了Android?IntentFilter的匹配規(guī)則示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android 播放視頻常見(jiàn)問(wèn)題小結(jié)

    Android 播放視頻常見(jiàn)問(wèn)題小結(jié)

    這篇文章主要介紹了Android 播放視頻常見(jiàn)問(wèn)題小結(jié),需要的朋友可以參考下
    2017-04-04
  • React-Native  Android 與 IOS App使用一份代碼實(shí)現(xiàn)方法

    React-Native Android 與 IOS App使用一份代碼實(shí)現(xiàn)方法

    這篇文章主要介紹了React-Native Android 與 IOS App使用一份代碼實(shí)現(xiàn)方法的相關(guān)資料,這里舉例說(shuō)明,該如何實(shí)現(xiàn)IOS和Android APP 都使用一樣的代碼,需要的朋友可以參考下
    2016-12-12
  • 最新評(píng)論

    依兰县| 平邑县| 霞浦县| 蒲江县| 四平市| 永宁县| 富川| 个旧市| 永宁县| 许昌县| 深泽县| 吴川市| 伽师县| 阿拉善盟| 金门县| 冀州市| 九江市| 民和| 青铜峡市| 通城县| 麦盖提县| 安达市| 青神县| 阿瓦提县| 砀山县| 长乐市| 喀喇| 来宾市| 郧西县| 汤阴县| 宜城市| 桂东县| 丰镇市| 和田市| 竹溪县| 长海县| 合水县| 达孜县| 盈江县| 远安县| 大关县|