且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Android对话框的自定义及透明效果

更新时间:2022-08-26 10:09:46

着手点在于Dialog,如要透明效果,则需要使用自定义的style,去除背景图片。参照代码

    <style name="progress_dialog" parent="@android:style/Theme.Dialog">  
        <item name="android:windowFrame">@null</item>  
        <item name="android:windowIsFloating">true</item>  
        <item name="android:windowIsTranslucent">true</item>  
        <item name="android:windowNoTitle">true</item>  
        <item name="android:background">@null</item>  
        <item name="android:windowBackground">@null</item>  
        <item name="android:backgroundDimEnabled">false</item>  
    </style>

如需要使用自定义的界面,则需要用户自定义layout,参照代码progress_dialog.xml

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:orientation="horizontal"  
    android:gravity="center"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content" >  
    
    <ProgressBar android:id="@+id/progress"          
     android:layout_width="wrap_content"         
     android:layout_height="wrap_content"  
        android:layout_gravity="center"  
        style="?android:attr/progressBarStyle"  
        android:layout_centerVertical="true" />  
</RelativeLayout> 

实例代码是为了显示一个终端自带的loading效果,背景为透明(ProgressBar)

  progressDialog = new Dialog(context, R.style.progress_dialog);   
  progressDialog.setContentView(R.layout.progress_dialog);   
  progressDialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);   
  progressDialog.show();

 

该文章只是起一个引导作用,让开发者知道该如何着手创建自定义的对话框,当然实现的方式还有其他的。