自定义Dialog
1. 在onCreate设置window的布局参数,setContentView设置其显示的布局
2. 在构造中调用父类的super(context, R.style.AddressStyle);
3. R.style.mydialog文件中,继承并重写父类的方法—如果需要更改样式
找到Theme.Dialog重写里面的属性,要加@android:。
实现如下效果:
styles中写入:
<stylename="mydialog"parent="@android:style/Theme.Dialog">
去除头
<itemname="android:windowNoTitle">true</item>
背景
<itemname="@android:windowBackground">@android:color/holo_green_light</item>
动画
<itemname="@android:windowAnimationStyle">@style/dialog</item>
设置进入和出去的动画效果
</style>
<stylename="dialog">
<itemname="@android:windowEnterAnimation">@anim/frag_enter</item>
<itemname="@android:windowExitAnimation">@anim/frag_exit</item>
</style>
代码
public class MyDialog extends Dialog {
public MyDialog(Contextcontext) {
//更改Dialog的样式
super(context,R.style.mydialog);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_my);
//初始化dialog的数据
initLv();
//设置dialog显示在屏幕的位置
Window window = getWindow();
LayoutParams attributes =window.getAttributes();
attributes.gravity=Gravity.BOTTOM;
window.setAttributes(attributes);
}
private void initLv() {
List<Integer>nums=newArrayList<>();
for (inti = 0; i < 10;i++) {
nums.add(i);
}
ListView lv_lv = (ListView)findViewById(R.id.lv_lv);
lv_lv.setAdapter(new ArrayAdapter<>(getContext(),android.R.layout.simple_list_item_1, android.R.id.text1,nums));
}
}