不要在Android中自定义Dialog的背景上显示透明屏幕

时间:2016-02-03 11:17:09

标签: android android-alertdialog android-popupwindow

我不想在dialog打开时显示透明背景。你能否建议一个有效的方法来做到这一点?

2 个答案:

答案 0 :(得分:4)

请检查我的实施:

我使用自己的布局创建自定义对话框,并在创建对话框时添加以下代码。

dialog = new Dialog(mActivity, R.style.DialogTransparentTheme);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

我的主题风格:

<style name="DialogTransparentTheme" parent="android:Theme">
        <item name="android:textAllCaps">false</item>
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
        <item name="android:backgroundDimEnabled">false</item>
        <item name="android:colorControlNormal">@color/app_txt_color</item>
        <item name="android:colorControlActivated">@color/app_txt_gray_color</item>
        <item name="android:colorControlHighlight">@color/app_txt_gray_color</item>
    </style>

答案 1 :(得分:0)

@Usman这是我的自定义对话框实现,它对我来说很好用:

var currentX: Double = 0.0
// and then in viewDidload :
movementManager.accelerometerUpdateInterval = 0.2
//Start Recording Data
    movementManager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue())           
        { (accelerometerData: CMAccelerometerData?, NSError) -> Void in
self.getvalues((accelerometerData?.acceleration)!)
            if(NSError != nil)
            {
                print("\(NSError)")
            }
}
func getvalues(acceleratiuon:CMAcceleration)
{        
        currentX = acceleratiuon.x
}

将上述代码附加到此对话框。