Android学习笔记9:常见控件(2)

来源:互联网 发布:华邦地产网络办公平台 编辑:程序博客网 时间:2024/05/31 11:04

1. DatePicker和TimePicker

使用方法 :

先得到系统时间和日期 ;

Calendar calendar=Calendar.getInstance();
int year=calendar.get(Calendar.YEAR);
int monthOfYear=calendar.get(Calendar.MONTH);
int dayOfMonth=calendar.get(Calendar.DAY_OF_MONTH);

然后为DatePicker绑定监听器,初始化日期,并且得到用户进行的修改操作 :

//这个方法让datePicker不显示日历:

datePicker.setCalendarViewShown(false);


datePicker.init(year, monthOfYear, dayOfMonth,new OnDateChangedListener(){

publicvoid onDateChanged(DatePicker view,int year,
int monthOfYear,int dayOfMonth) {
// 要进行的操作,比如将修改后的日期显示出来

}

});

为TimePicker绑定监听器 :

timePicker.setOnTimeChangedListener(new OnTimeChangedListener(){

publicvoid onTimeChanged(TimePicker view,int hourOfDay,int minute) {
timeEt.setText(
"您选择的时间是:"+hourOfDay+""+minute+"分。");
}

});


2.对话框 AlertDialog 和ProgressDialog


1> 最简单的AlertDialog 的创建

AlertDialog.Builder builder = new Builder(Activity01.this);
builder.setTitle("提示");
builder.setMessage("请登录");

builder.create(); 创建

builder.show(); 显示

设置两个按钮 builder.setPositiveButton("确定", new DialogInterface.OnClickListener()

builder.setNegativeButton("取消", new DialogInterface.OnClickListener()

2> 自定义AlertDialog 的创建

AlertDialog.Builder builder = new Builder(Activity01.this);
LayoutInflater factory = LayoutInflater.from(Activity01.this);
    final View DialogView = factory.inflate(R.layout.test, null); // 自定义布局文件

builder.setView(DialogView); // 加载自定义的布局


3>ProgressDialog 显示一个转圈的Dialog

  1. mProgressDialog = new ProgressDialog(this);  
  2.  mProgressDialog.setTitle("读取ing");  
  3.  mProgressDialog.setMessage("正在读取中请稍候");  
  4.  mProgressDialog.setIndeterminate(true);  
  5.  mProgressDialog.setCancelable(true);  
  6.  mProgressDialog.show();  



3. 切换图片 ImageSwitcher

1> 先定义布局文件

 <ImageSwitcher
        android:id="@+id/img"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         />

2>                 imgSwitcher = (ImageSwitcher)findViewById(R.id.img);
imgSwitcher.setFactory(this);

           // List是装有图片的Int 数组
imgSwitcher.setImageResource(list[index]);
//设置切入动画

                imgSwitcher.setInAnimation(AnimationUtils.loadAnimation(getApplicationContext(),  
                android.R.anim.slide_in_left));  
        // 设置切出动画  
imgSwitcher.setOutAnimation(AnimationUtils.loadAnimation(  
                getApplicationContext(), android.R.anim.slide_out_right));


4. GridView

1> 先写GridView 的布局文件,定义整个GridView

  1. <GridView  
  2.   xmlns:android="http://schemas.android.com/apk/res/android"  
  3.   android:id="@+id/gridview"  
  4.   android:layout_width="fill_parent"  
  5.   android:layout_height="fill_parent"  
  6.   android:columnWidth="90dp"  
  7.   android:numColumns="auto_fit"  
  8.   android:horizontalSpacing="10dp"  
  9.   android:verticalSpacing="10dp"  
  10.   android:stretchMode="columnWidth"  
  11.   android:gravity="center">  
  12. </GridView>  
设置列宽为90dp,这样当我们的numColumns设置为auto_fit时,Android就会自动计算我们手机屏幕的大小以决定每一行展示几个元素。这是很方便。android:horizontalSpacing定义列之间的间隔,android:verticalSpacing定义行之间的间隔。android:stretchMode设置为columnWidth是意味着根据列宽自动缩放。

2> 

  1.  GridView gridView=(GridView)findViewById(R.id.gridview);  
  2.         gridView.setAdapter(new ImageAdapter(this)); 
然后就要定义ImageAdapter 这个类了
  1. private class ImageAdapter extends BaseAdapter{  
  2.         private Context mContext;  
  3.   
  4.         public ImageAdapter(Context context) {  
  5.             this.mContext=context;  
  6.         }  
  7.   
  8.         @Override  
  9.         public int getCount() {  
  10.             return mThumbIds.length;  
  11.         }  
  12.   
  13.         @Override  
  14.         public Object getItem(int position) {  
  15.             return mThumbIds[position];  
  16.         }  
  17.   
  18.         @Override  
  19.         public long getItemId(int position) {  
  20.             // TODO Auto-generated method stub  
  21.             return 0;  
  22.         }  
  23.   
  24.         @Override  
  25.         public View getView(int position, View convertView, ViewGroup parent) {  
  26.             //定义一个ImageView,显示在GridView里  
  27.             ImageView imageView;  
  28.             if(convertView==null){  
  29.                 imageView=new ImageView(mContext);  
  30.                 imageView.setLayoutParams(new GridView.LayoutParams(8585));  
  31.                 imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);  
  32.                 imageView.setPadding(8888);  
  33.             }else{  
  34.                 imageView = (ImageView) convertView;  
  35.             }  
  36.             imageView.setImageResource(mThumbIds[position]);  
  37.             return imageView;  
  38.         }  
  还有装图片的数组也要定义好。


5. 拖动条 SeekBar

用法:
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
text1.setText("当前值" + progress);

}

public void onStartTrackingTouch(SeekBar seekBar) {
text2.setText("正在调节");

}

public void onStopTrackingTouch(SeekBar seekBar) {
text2.setText("停止调节");

}

});


6.   进度条对话框ProgressDialog

用法  ;                     / /创建ProgressDialog对象
ProgressDialog m_pDialog = new ProgressDialog(Activity01.this);


// 设置进度条风格,风格为圆形,旋转的
m_pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);


// 设置ProgressDialog 标题
m_pDialog.setTitle("提示");

// 设置ProgressDialog 提示信息
m_pDialog.setMessage("这是一个圆形进度条对话框");


// 设置ProgressDialog 标题图标
m_pDialog.setIcon(R.drawable.img1);


// 设置ProgressDialog 的进度条是否不明确
m_pDialog.setIndeterminate(false);

// 设置ProgressDialog 是否可以按退回按键取消
m_pDialog.setCancelable(true);

// 设置ProgressDialog 的一个Button
m_pDialog.setButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int i)
{
//点击“确定按钮”取消对话框
dialog.cancel();
}
});

                                // 让ProgressDialog显示
m_pDialog.show();


原创粉丝点击