如果想做一个对话框,其中的控件组合又无法从AlertDialog类继承,只能选择自定义的对话框了,现在笔者就以带seekbar的对话框为例为大家讲解自定义对话框的方法和步骤。
public class dialogholdon extends Dialog implements android.view.View.OnClickListener,SeekBar.OnSeekBarChangeListener{
private Button Button1;
private SeekBar seekbar1;
private Window window = null;//定义窗口,用于设置尺寸
public dialogholdon(Context context) {//构造函数
super(context);
// TODO Auto-generated constructor stub
}
@Override
public void onClick(View v) {//按钮事件
// TODO Auto-generated method stub
...
}
public void dialogshow(){//显示dialog
setContentView(R.layout.dialog_holdon);//读取布局文件
Button1 = (Button)findViewById(R.id.button1);
seekbar1 = (SeekBar)findViewById(R.id.seekBar1);
Button1.setOnClickListener(this);
seekbar1.setOnSeekBarChangeListener(this);
setwindow();//设置窗口大小
setTitle("通话接听震动设置");//设置标题
show();//显示
}
public void setwindow(){
window = getWindow();//获取当前窗口
WindowManager.LayoutParams wl = window.getAttributes();//得到窗口参数
wl.x = 0;//居中设置 0为水平居中
wl.y = 100;//垂直居中设置
wl.alpha = 0.6f;//透明度
wl.gravity = Gravity.BOTTOM;//重力方向
WindowManager m = window.getWindowManager();//定义窗口尺寸
Display own = m.getDefaultDisplay();//获得设备屏幕参数
wl.height = (int)(own.getHeight() * 0.75);//设置窗口高度为屏幕的0.75
wl.width = (int)(own.getWidth() * 0.85);//设置窗口宽度为屏幕的0.75
window.setAttributes(wl);//设置参数
}
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {//seekbar监听操作
...
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub
}
}
希望大家多多交流!!!