Android常用控件总结

来源:互联网 发布:三明职业技术学院软件 编辑:程序博客网 时间:2024/05/11 14:00


Android常用控件总结

1.Button:按钮单击事件

Button button = (Button) this.findViewById(R.id.imageButton);

             // 设置图片按钮的背景

             button.setBackgroundResource(R.drawable.icon01);

             //设置背景颜色

       //b.setBackgroundColor(color);

       //b.setText(text);

             // setOnClickListener() - 响应图片按钮的鼠标单击事件

             button.setOnClickListener(new Button.OnClickListener(){

                    @Override

                    public void onClick(View v) {//单击后的效果

                           TextView>

                           txt.setText("按钮被单击了");

                    }

             });

2.EditText:编辑框

3.TextView:显示文本

4.ImageButton:图片按钮,用法和Button相似

5.ImageView:图片显示控件

   <!--ImageView -图片显示控件  -->

<ImageViewandroid:id="@+id/imageView"android:layout_width="wrap_content"

      android:layout_height="wrap_content"></ImageView>

@Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.imageview);

 

      setTitle("ImageView");

      

      ImageView>this.findViewById(R.id.imageView);

      //指定需要显示的图片

      imgView.setBackgroundResource(R.drawable.icon01);

   }

 

6.CheckBox:复选框

7.RadioButton:单选按钮

8. AnalogClock:钟表(带表盘的那种)控件

@Override

protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub    super.onCreate(savedInstanceState);

this.setContentView(R.layout.analogclcok)   

setTitle("AnalogClock");

}

   <!--AnalogClock -钟表(带表盘的那种)控件-->

   <AnalogClockandroid:id="@+id/analogClock"

android:layout_width="wrap_content"android:layout_height="wrap_content">

   </AnalogClock>

9. DigitalClock电子表控件

   <!--DigitalClock -电子表控件-->

   <DigitalClockandroid:id="@+id/digitalClock"

 android:layout_width="wrap_content"android:layout_height="wrap_content">

   </DigitalClock>

@Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.digitalclcok);

 

      setTitle("DigitalClcok");

   }

10. DatePicker日期选择控件

<!--DatePicker -日期选择控件 -->

<DatePickerandroid:id="@+id/datePicker"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

@Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.datepicker);

 

      //具体的应用可参见对话框中的示例

      setTitle("DatePicker");

   }

 

11. TimePicker时间选择控件

<!--TimePicker -时间选择控件-->

<TimePicker

android:id="@+id/timePicker"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

</TimePicker>

@Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.timepicker);

 

      //具体的应用可参见对话框中的示例

      setTitle("TimePicker");

   }

12.ToggleButton双状态按钮控件

<!-- ToggleButton -双状态按钮控件

textOn -当按钮状态为 true时所显示的文本

textOff -当按钮状态为 false时所显示的文本

-->

<ToggleButtonandroid:id="@+id/toggleButton"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textOn="关闭"android:textOff="打开"/>

setTitle("ToggleButton");

final ToggleButton btn = (ToggleButton)this.findViewById(R.id.toggleButton);

// setOnClickListener() -响应按钮的鼠标单击事件

btn.setOnClickListener(new Button.OnClickListener(){

@Override

publicvoid onClick(View v) {

TextView txt = (TextView) _ToggleButton.this.findViewById(R.id.textView);

             // ToggleButton.isChecked() -双状态按钮的按钮状态

             txt.setText("按钮状态:" + String.valueOf(btn.isChecked()));

          }

      });

13.ProgressBar进度条控件

//设置特性以允许在应用程序的标题栏上显示进度条(条状)   requestWindowFeature(Window.FEATURE_PROGRESS);

//设置特性以允许在应用程序的标题栏上显示进度条(圆圈状)

   requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

   this.setContentView(R.layout.progressbar);

setTitle("ProgressBar");

//在标题栏上显示进度条(条状)

setProgressBarVisibility(true);

//在标题栏上显示进度条(圆圈状)

setProgressBarIndeterminateVisibility(true);

//指定进度条的进度

setProgress(50 * 100);

setSecondaryProgress(75 * 100);

<!--ProgressBar -进度条控件 -->

<!--以下分别为大、中、小的进度条控件(圆圈状)-->

<ProgressBarandroid:id="@+android:id/progress_large"

      style="?android:attr/progressBarStyleLarge"android:layout_width="wrap_content"

   android:layout_height="wrap_content"/>

<ProgressBarandroid:id="@+android:id/progress"

      android:layout_width="wrap_content"android:layout_height="wrap_content"/>

<ProgressBarandroid:id="@+android:id/progress_small"

      style="?android:attr/progressBarStyleSmall"android:layout_width="wrap_content"

   android:layout_height="wrap_content"/>

<!--

      进度条控件(条状)的演示

          style - 进度条的样式,本例使用内置样式

          max - 进度的最大值

          progress - 第一进度位置

          secondaryProgress - 第二进度位置

   -->

   <ProgressBarandroid:id="@+id/progress_horizontal"

      style="?android:attr/progressBarStyleHorizontal"android:layout_width="200px"

      android:layout_height="wrap_content"android:max="100"

      android:progress="50"android:secondaryProgress="75"/>

14.SeekBar:可拖动的进度条控件

<!--SeekBar -可拖动的进度条控件

          max - 进度的最大值

          progress - 第一进度位置

          secondaryProgress - 第二进度位置 -->

<SeekBarandroid:id="@+id/seekBar"

 android:layout_width="fill_parent"

      android:layout_height="wrap_content"android:max="100"

      android:progress="50"android:secondaryProgress="75"/>

<TextViewandroid:id="@+id/progress"android:layout_width="fill_parent"

      android:layout_height="wrap_content"/>

<TextViewandroid:id="@+id/tracking"android:layout_width="fill_parent"

      android:layout_height="wrap_content"/>

publicclass _SeekBarextends Activityimplements

      SeekBar.OnSeekBarChangeListener {

   SeekBar mSeekBar;

   TextView mProgressText;

   TextView mTrackingText;

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.seekbar);

      setTitle("SeekBar");

      mSeekBar = (SeekBar) findViewById(R.id.seekBar);

      // setOnSeekBarChangeListener() -响应拖动进度条事件

      mSeekBar.setOnSeekBarChangeListener(this);      

      mProgressText = (TextView) findViewById(R.id.progress);

      mTrackingText = (TextView) findViewById(R.id.tracking);

   }

 

   //拖动进度条后,进度发生改变时的回调事件

   publicvoid onProgressChanged(SeekBar seekBar,int progress,

          boolean fromTouch) {

      mProgressText.setText(progress +"%");

   }

   //拖动进度条前开始跟踪触摸

   publicvoid onStartTrackingTouch(SeekBar seekBar) {

      mTrackingText.setText("开始跟踪触摸");

   }

   //拖动进度条后停止跟踪触摸

   publicvoid onStopTrackingTouch(SeekBar seekBar) {

      mTrackingText.setText("停止跟踪触摸");

   }

}

 

15.AutoCompleteTextView -支持自动完成功能的可编辑文本控件

<AutoCompleteTextView

 android:id="@+id/auto_edit"

 android:layout_width="wrap_content"

 android:layout_height="wrap_content"

 ></AutoCompleteTextView>

 <Button

   android:id="@+id/btnname"

   android:layout_width="wrap_content"

   android:layout_height="wrap_content"

   android:text="@string/auto_btnname"

 ></Button>

publicclass Textextends Activity {

   AutoCompleteTextView autoview; 

   ArrayAdapter<String> adapter;  

   //default city

   String[] city = {

          "shanghai","beijing","tianjing","wuhan","sichuan"

   };

   @Override

   publicvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.main);       

 intialView();       

       //default=2

       autoview.setThreshold(1);       

       Button>btnname);

       btn.setOnClickListener(new OnClickListener(){

 

          @Override

          publicvoid onClick(View v) {

             //TODO Auto-generated method stub

          String>autoview.getText().toString();         

             adapter.add(string);

          }

       });

   }

   publicvoid intialView(){

   adapter =new ArrayAdapter<String>(this,

               android.R.layout.simple_dropdown_item_1line,city);  

   autoview = (AutoCompleteTextView) findViewById(R.id.auto_edit);

   autoview.setWidth(200);    

   autoview.setAdapter(adapter);

   }

}

 

16.MultiAutoCompleteTextView:支持自动完成功能的可编辑文本控件

<!--MultiAutoCompleteTextView

   - 支持自动完成功能的可编辑文本控件,允许输入多值(多值之间会自动地用指定的分隔符分开)

   -->

<MultiAutoCompleteTextViewandroid:id="@+id/editText"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

publicclass _MultiAutoCompleteTextViewextends Activity {

 

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       setContentView(R.layout.multiautocompletetextview);

 

       setTitle("MultiAutoCompleteTextView");

       

       //实例化适配器,指定显示格式及数据源

       ArrayAdapter<String>>new ArrayAdapter<String>(

            this,

               android.R.layout.simple_dropdown_item_1line,

               ary);

       MultiAutoCompleteTextView>editText);

       textView.setAdapter(adapter);

       

       //设置多个值之间的分隔符,此处为逗号

       textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

   }

 

   //自动完成控件的所需数据的数据源

   private String[]ary =new String[] {

      "abc","abcd","abcde","abcdef","abcdefg",

      "hij","hijk","hijkl","hijklm","hijklmn", };

}

 

17.ZoomControls:放大/缩小按钮控件

<!--放大/缩小按钮控件-->

<ZoomControlsandroid:id="@+id/zoomControls"

   android:layout_width="wrap_content"

   android:layout_height="wrap_content"/>

publicclass _ZoomControlsextends Activity {

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.zoomcontrols);

      setTitle("ZoomControls");

      ZoomControls>this.findViewById(R.id.zoomControls);

      // setOnZoomInClickListener() -响应单击放大按钮的事件

      zoomControls.setOnZoomInClickListener(new OnClickListener() {

          publicvoid onClick(View v) {

             Toast.makeText(_ZoomControls.this,"单击了放大按钮", Toast.LENGTH_SHORT).show();

          }

      });   

      // setOnZoomOutClickListener() -响应单击缩小按钮的事件

      zoomControls.setOnZoomOutClickListener(new OnClickListener() {

          publicvoid onClick(View v) {

             Toast.makeText(_ZoomControls.this,"单击了缩小按钮", Toast.LENGTH_SHORT).show();

          }

      });

   }}

18.Include将指定的 layout整合进来

<!--

      include - 将指定的 layout整合进来

      layout - 指定需要整合 layoutinclude_2.xml文件)

   -->

   <includeandroid:id="@+id/cell1"layout="@layout/include_1"/>

   <includeandroid:id="@+id/cell2"

   android:layout_width="fill_parent"

   layout="@layout/include_2"/>

this.setContentView(R.layout.include);

19. VideoView:视频播放控件

<!--VideoView -视频播放控件  -->

   <VideoViewandroid:id="@+id/videoView"    android:layout_width="wrap_content"

   android:layout_height="wrap_content"> </VideoView>

@Override

protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.videoview);

      setTitle("VideoView");     

      VideoView>videoView);

      //指定需要播放的视频的地址     videoView.setVideoURI(Uri.parse("android.resource://com.webabcd.view/" + R.raw.demo));

      // videoView.setVideoPath();      

      //设置播放器的控制条

      videoView.setMediaController(new MediaController(this));

      //开始播放视频

      videoView.start();

   }

20.WebView浏览器控件

<!--WebView -浏览器控件(WebKit内核)-->

   <WebViewandroid:layout_width="fill_parent"

      android:layout_height="wrap_content"android:id="@+id/webView"/>

@Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.webview);

      setTitle("WebView");    

      WebView>webView);

 

      //配置浏览器,使其可支持 JavaScript

      WebSettings>

      webSettings.setJavaScriptEnabled(true);      

      //清除浏览器缓存

      webView.clearCache(true);

      //指定浏览器需要解析的url 地址

      webView.loadUrl("http://webabcd.cnblogs.com/");

      //指定浏览器需要解析的html 数据

      // webView.loadData("<ahref='http://webabcd.cnblogs.com/'>webabcd</a>", "text/html", "utf-8");

   }

21.RatingBar评分控件

<!--RatingBar -评分控件

   numStars - 评分控件的星星的数量

   rating - 当前评分的值-->

<RatingBarandroid:id="@+id/ratingBar"android:numStars="5"android:rating="1.5"

android:layout_width="wrap_content"android:layout_height="wrap_content" />

<TextViewandroid:id="@+id/textView"

    android:layout_width="wrap_content"

      android:layout_height="wrap_content"/>

publicclass _RatingBarextends Activityimplements RatingBar.OnRatingBarChangeListener {

   private RatingBarmRatingBar;

   private TextViewmTextView;

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.ratingbar);

      setTitle("RatingBar");

      mTextView = (TextView) findViewById(R.id.textView);

      mRatingBar = (RatingBar) findViewById(R.id.ratingBar);

      // setOnRatingBarChangeListener() -响应评分值发生改变的事件

      mRatingBar.setOnRatingBarChangeListener(this);

   }

   @Override

   publicvoid onRatingChanged(RatingBar ratingBar,float rating,

          boolean fromUser) {

       mTextView.setText(String.valueOf(rating));

   }

}

21.Tab:选项卡:三种实现方式

publicclass MainTestextends TabActivity {

   @Override

   publicvoid onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      final TabHost tabHost = getTabHost();   tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("SMS")

                 .setContent(new Intent(this, SMSTest.class)));

tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("联系人").setContent(new Intent(this, LinkManTest.class)));

      

tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("个人信息").setContent(new Intent(this, InfoTest.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

   }

}

publicclass Tabs2extends TabActivityimplements TabHost.TabContentFactory {

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       final TabHost tabHost = getTabHost();       

       tabHost.addTab(tabHost.newTabSpec("tab1")

               .setIndicator("tab1", getResources().getDrawable(R.drawable.star_big_on))

               .setContent(this));       

       tabHost.addTab(tabHost.newTabSpec("tab2")

               .setIndicator("tab2")

               .setContent(this));       

       tabHost.addTab(tabHost.newTabSpec("tab3")

               .setIndicator("tab3")

               .setContent(this));

   }

   /**{@inheritDoc} */

   public View createTabContent(String tag) {

       final TextView tv =new TextView(this);

       tv.setText("Content for tab with tag " + tag);

       return tv;

   }

}

publicclass Tabs1extends TabActivity {

 

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

       super.onCreate(savedInstanceState);

       TabHost>

       

       LayoutInflater.from(this).inflate(R.layout.tabs1, tabHost.getTabContentView(), true);

 

       tabHost.addTab(tabHost.newTabSpec("tab1")

               .setIndicator("tab1")

               .setContent(R.id.view1));

       tabHost.addTab(tabHost.newTabSpec("tab3")

               .setIndicator("tab2")

               .setContent(R.id.view2));

       tabHost.addTab(tabHost.newTabSpec("tab3")

               .setIndicator("tab3")

               .setContent(R.id.view3));

   }

}

22.Spinner-下拉框控件与setDropDownViewResource

<!--Spinner -下拉框控件-->      

<Spinnerandroid:id="@+id/spinner"

   android:layout_width="fill_parent"

   android:layout_height="wrap_content"/>

publicclass _Spinnerextends Activity {

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.spinner);

      setTitle("Spinner");

      Spinner>spinner);    

      //设置下拉框控件的标题文本

      spinner.setPrompt("请选择");

      //实例化适配器,指定显示格式及数据源

      ArrayAdapter<CharSequence>>createFromResource(

             this, R.array.colors, android.R.layout.simple_spinner_item);

       adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

      spinner.setAdapter(adapter);

 

      // setOnItemSelectedListener() -响应下拉框的选中值发生变化的事件

      spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

          @Override

          publicvoid onItemSelected(AdapterView<?> arg0, View arg1,

                 int arg2,long arg3) {

             TextView>this.findViewById(R.id.textView);

             textView.setText(((TextView)arg1).getText());

          }

          @Override

          publicvoid onNothingSelected(AdapterView<?> arg0) {   

          }

      });

   }}

23.Chronometer计时器控件

<!--Chronometer -计时器控件 -->

   <Chronometerandroid:id="@+id/chronometer"

      android:layout_width="wrap_content"

      android:layout_height="wrap_content"/>

   <Buttonandroid:id="@+id/btnStart"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="开始计时">

   <requestFocus/>  </Button>

   <Buttonandroid:id="@+id/btnStop"

     android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="停止计时"/>

   <Buttonandroid:id="@+id/btnReset"

      android:layout_width="wrap_content"

     android:layout_height="wrap_content"

     android:text="计时器复位"/>

publicclass _Chronometerextends Activity {

   private ChronometermChronometer;

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.chronometer);

      setTitle("Chronometer");

      Button button;

      mChronometer = (Chronometer) findViewById(R.id.chronometer);

      //设置计时器所显示的时间格式

      mChronometer.setFormat("计时:(%s)");     

      button = (Button) findViewById(R.id.btnStart);

      button.setOnClickListener(mStartListener);

      button = (Button) findViewById(R.id.btnStop);

      button.setOnClickListener(mStopListener);

      button = (Button) findViewById(R.id.btnReset);

      button.setOnClickListener(mResetListener);

   }

   View.OnClickListener mStartListener =new OnClickListener() {

      publicvoid onClick(View v) {

          //启动计时器

          mChronometer.start();

      }

   };

   View.OnClickListener mStopListener =new OnClickListener() {

      publicvoid onClick(View v) {

          //暂停计时器

          mChronometer.stop();

      }

   };

   View.OnClickListener mResetListener =new OnClickListener() {

      publicvoid onClick(View v) {

          //复位计时器,即停止计时器

          mChronometer.setBase(SystemClock.elapsedRealtime());

      }

   };}

24.ScrollView滚动条控件

<!--  ScrollView - 滚动条控件   scrollbarStyle - 滚动条的样式 -->

   <ScrollViewandroid:id="@+id/scrollView"

   android:layout_width="fill_parent"

android:layout_height="100px"

   android:scrollbarStyle="outsideOverlay"

   android:background="@android:drawable/edit_text">

      <TextViewandroid:layout_width="fill_parent"

          android:layout_height="wrap_content"android:id="@+id/textView"/>

</ScrollView>

@Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.scrollview);

      setTitle("ScrollView");

      TextView textView = (TextView)this.findViewById(R.id.textView);

      textView.setText("a\na\na\na\na\na\na\na\na\na\na\na\na"

             +"\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na");

   }

25.TextSwitcher-文字转换器控件

<Buttonandroid:id="@+id/btnChange"android:layout_width="wrap_content"       android:layout_height="wrap_content"android:text="改变文字"/>

<!--TextSwitcher -文字转换器控件(改变文字时增加一些动画效果)  -->

<TextSwitcherndroid:id="@+id/textSwitcher"

android:layout_width="fill_parent"android:layout_height="wrap_content"/>

publicclass _TextSwitcherextends Activityimplements ViewSwitcher.ViewFactory {

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.textswithcer);

      setTitle("TextSwithcer");

      final TextSwitcher switcher = (TextSwitcher) findViewById(R.id.textSwitcher);

      //指定转换器的 ViewSwitcher.ViewFactory

      switcher.setFactory(this);     

      //设置淡入和淡出的动画效果

      Animation>loadAnimation(this, android.R.anim.fade_in);

      Animation>loadAnimation(this, android.R.anim.fade_out);

      switcher.setInAnimation(in);

      switcher.setOutAnimation(out);

      //单击一次按钮改变一次文字

      Button>this.findViewById(R.id.btnChange);

      btnChange.setOnClickListener(new View.OnClickListener() {

          @Override

          publicvoid onClick(View v) {

          switcher.setText(String.valueOf(new Random().nextInt()));

          }

      });

   }

 

   //重写 ViewSwitcher.ViewFactory makeView(),返回一个 View

   @Override

   publicView makeView() {

      TextView>new TextView(this);

      textView.setTextSize(36);

      return textView;

   }

}

 

26.ListView

27.Gallery缩略图浏览器控件

   <!--Gallery -缩略图浏览器控件

      spacing - 缩略图列表中各个缩略图之间的间距-->

   <Galleryandroid:id="@+id/gallery"android:layout_width="fill_parent"

      android:layout_height="wrap_content"android:spacing="20px"/>

publicclass _Galleryextends Activity {

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.gallery);

      setTitle("Gallery");

      Gallery>gallery);

      //为缩略图浏览器指定一个适配器

      gallery.setAdapter(new ImageAdapter(this));

      //响应在缩略图列表上选中某个缩略图后的事件

      gallery.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

          @Override

          publicvoid onItemSelected(AdapterView<?> parent, View v,

                 intposition, long id) {

             Toast.makeText(_Gallery.this, String.valueOf(position), Toast.LENGTH_SHORT).show();

          }

          @Override

          publicvoid onNothingSelected(AdapterView<?> arg0) {

          }

      });

   }

   //继承 BaseAdapter用以实现自定义的图片适配器

   publicclass ImageAdapterextends BaseAdapter {

      private ContextmContext;

      public ImageAdapter(Context context) {

          mContext = context;

      }

      publicint getCount() {

          returnmThumbIds.length;

      }

      public Object getItem(int position) {

          return position;

      }

      publiclong getItemId(int position) {

          return position;

      }

      public View getView(int position, View convertView, ViewGroup parent) {

          ImageView>new ImageView(mContext);

 

          image.setImageResource(mThumbIds[position]);

          image.setAdjustViewBounds(true);

          image.setLayoutParams(new Gallery.LayoutParams(

                 LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

          return image;

      }

   }

 

   //需要显示的图片集合

   private Integer[]mThumbIds = { R.drawable.icon01, R.drawable.icon02,

          R.drawable.icon03, R.drawable.icon04, R.drawable.icon05 };

}

28.ImageSwitcher

<Galleryandroid:id="@+id/gallery"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:spacing="20px"/>

 

   <!--

      ImageSwitcher -

      图片转换器控件(改变图片时增加一些动画效果)

   -->

<ImageSwitcherandroid:id="@+id/imageSwitcher"

android:layout_width="fill_parent"      android:layout_height="wrap_content"/>

publicclass ImageSwitcherTestextends Activityimplements ViewFactory {

   ImageSwitcher imageswitcher;

publicfinal Integer[]imagesstr = { R.drawable.p1, R.drawable.p2, R.drawable.p3,R.drawable.p4, R.drawable.p5 };

 

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      setContentView(R.layout.imageswitcher);

      setTitle("ImageSwitcher");

 

      final ImageSwitcher imgs = (ImageSwitcher) findViewById(R.id.imageSwitcher);

      imgs.setFactory(this);

      imgs.setInAnimation(AnimationUtils.loadAnimation(this,

             android.R.anim.fade_in));

      imgs.setInAnimation(AnimationUtils.loadAnimation(this,

             android.R.anim.fade_out));

 

      Gallery>gallery02);

      gallery.setAdapter(new ImageAdapter(this));

      gallery

             .setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

   @Override

   publicvoid onItemSelected(AdapterView<?> arg0, View arg1,

                        int position,long arg3) {

      imgs.setImageResource(imagesstr[position]);

                 }

 

      @Override

      publicvoid onNothingSelected(AdapterView<?> arg0) {

                    //TODO Auto-generated method stub

      }

    });

   }

   @Override

   public View makeView() {

      //TODO Auto-generated method stub

      ImageView>new ImageView(this);

      image.setMinimumHeight(200);

      image.setMinimumWidth(200);

      image.setScaleType(ImageView.ScaleType.FIT_CENTER);

      image.setLayoutParams(new ImageSwitcher.LayoutParams(

      LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

      return image;

   }

   publicclass ImageAdapterextends BaseAdapter {

      public Contextmcontext;

      public ImageAdapter(Context context) {

          mcontext = context;

      }

      @Override

      publicint getCount() {

          //TODO Auto-generated method stub

          returnimagesstr.length;

      }

      @Override

      public Object getItem(int position) {

          //TODO Auto-generated method stub

          return position;

      }

      @Override

      publiclong getItemId(int position) {

          //TODO Auto-generated method stub

          return position;

      }

      @Override

      public View getView(int position, View convertView, ViewGroup parent) {

          ImageView>new ImageView(mcontext);

          imgv.setImageResource(imagesstr[position]);

          imgv.setAdjustViewBounds(true);

          imgv.setLayoutParams(new Gallery.LayoutParams(

                 LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

          return imgv;

      }}}

29.GridView

<!--

   GridView - 网格控件

      numColumns="auto_fit" - 列数自适应

      stretchMode - 缩放模式(stretchMode="columnWidth" -缩放与列宽大小同步)

-->

<GridViewxmlns:android="http://schemas.android.com/apk/res/android"

   android:id="@+id/gridView"

    android:layout_width="fill_parent"

   android:layout_height="fill_parent"

    android:padding="10px"

   android:verticalSpacing="10px"

   android:horizontalSpacing="10px"

   android:numColumns="auto_fit"

    android:columnWidth="60px"

   android:stretchMode="columnWidth"

    android:gravity="center">

</GridView>

publicclass _GridViewextends Activity {

   @Override

   protectedvoid onCreate(Bundle savedInstanceState) {

      //TODO Auto-generated method stub

      super.onCreate(savedInstanceState);

      this.setContentView(R.layout.gridview);

      setTitle("GridView");

      GridView>gridView);

      //指定网格控件的适配器为自定义的图片适配器

      gridView.setAdapter(new ImageAdapter(this));

   }

   //自定义的图片适配器

   publicclass ImageAdapterextends BaseAdapter {

      private ContextmContext;

      public ImageAdapter(Context context) {

          mContext = context;

      }

      publicint getCount() {

          returnmThumbIds.length;

      }

      public Object getItem(int position) {

          return position;

      }

      publiclong getItemId(int position) {

          return position;

      }

      /*

       * 将图片放入ImageView(non-Javadoc)     *

       * @see android.widget.Adapter#getView(int, android.view.View,

       * android.view.ViewGroup)

       */

      public View getView(int position, View convertView, ViewGroup parent) {

          ImageView imageView;

          if (convertView ==null) {

             imageView = new ImageView(mContext);

             imageView.setLayoutParams(new GridView.LayoutParams(48, 48));

             imageView.setAdjustViewBounds(false);

              imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

             imageView.setPadding(5, 5, 5, 5);

          } else {

             imageView = (ImageView) convertView;

          }

          imageView.setImageResource(mThumbIds[position]);

          return imageView;

      }

 

      //网格控件所需图片数据的数据源

      private Integer[]mThumbIds = { R.drawable.icon01, R.drawable.icon02,

             R.drawable.icon03, R.drawable.icon04, R.drawable.icon05 };

   }}

 

30.ExpandableList

0 0
原创粉丝点击