安卓学习之—自定义Dialog

自定义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));

  }

 

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值