android 自定义Dialog背景透明及显示位置设置

本文详细介绍了如何在Android中自定义Dialog,并通过布局文件实现特定功能,包括样式主题、按钮设计与位置调整。


代码如下:

1、自定义Dialog
  1. public class SelectDialog extends AlertDialog{

  2. public SelectDialog(Context context, int theme) {
  3.     super(context, theme);
  4. }

  5. public SelectDialog(Context context) {
  6.     super(context);
  7. }

  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10.     super.onCreate(savedInstanceState);
  11.     setContentView(R.layout.slt_cnt_type);
  12. }
  13. }
复制代码
2、布局文件slt_cnt_type.xml代码
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3.   xmlns:android="http://schemas.android.com/apk/res/android"
  4.   android:orientation="vertical"
  5.   android:padding="10dp" android:layout_width="115dp" android:layout_height="wrap_content" android:background="@color/blue">
  6.     <Button android:layout_height="wrap_content" android:background="#00000000" android:layout_width="fill_parent" android:text="全部联系人" android:paddingTop="5dp" android:paddingBottom="5dp" android:paddingLeft="10dp" android:gravity="left|center_vertical" android:id="@+id/btnSltCntAll"></Button>
  7.     <Button android:layout_height="wrap_content" android:background="#00000000" style="@drawable/greenhand_button" android:text="咕咚用户" android:gravity="left|center_vertical" android:paddingBottom="5dp" android:paddingTop="5dp" android:paddingLeft="10dp" android:paddingRight="10dp" android:layout_width="fill_parent" android:id="@+id/btnSltGudongUser"></Button>
  8.     <Button style="@drawable/greenhand_button" android:background="#00000000" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="推荐用户" android:gravity="left|center_vertical" android:paddingTop="5dp" android:paddingBottom="5dp" android:paddingLeft="10dp" android:id="@+id/btnSltRecommend"></Button>
  9. </LinearLayout>
复制代码
3、颜色color.xml代码
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.   <color name="transparent">#00000000</color>
  4. </resources>
复制代码
4、样式style.xml代码
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.     <style name="dialog" parent="@android:style/Theme.Dialog">
  4.         <item name="android:windowFrame">@null</item><!--边框-->
  5.         <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上-->
  6.         <item name="android:windowIsTranslucent">false</item><!--半透明-->
  7.         <item name="android:windowNoTitle">true</item><!--无标题-->
  8.         <item name="android:windowBackground">@color/transparent</item><!--背景透明-->
  9.         <item name="android:backgroundDimEnabled">false</item><!--模糊-->
  10.     </style>
  11. </resources>
复制代码
4、显示Dialog
  1. SelectDialog selectDialog = new SelectDialog(this,R.style.dialog);//创建Dialog并设置样式主题
  2. Window win = selectDialog.getWindow();
  3. LayoutParams params = new LayoutParams();
  4. params.x = -80;//设置x坐标
  5. params.y = -60;//设置y坐标
  6. win.setAttributes(params);
  7. selectDialog.setCanceledOnTouchOutside(true);//设置点击Dialog外部任意区域关闭Dialog
  8. selectDialog.show();

复制代码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值