Android(如何创建透明的对话框主题活动)

从来好事天生俭,自古瓜儿苦后甜。这篇文章主要讲述Android:如何创建透明的对话框主题活动相关的知识,希望能为你提供帮助。
我最初的目标是模态对话框,但是你知道,android不支持这种类型的对话框。或者,构建以对话为主题的活动可能会奏效。 这是代码,

public class DialogActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) {setTheme(android.R.style.Theme_Dialog); super.onCreate(savedInstanceState); requestWindowFeature (Window.FEATURE_NO_TITLE); Button yesBtn = new Button(this); yesBtn.setText("Yes"); yesBtn.setOnClickListener(new OnClickListener() {@Override public void onClick(View v) { // TODO Auto-generated method stub DialogActivity.this.finish(); }}); this.setContentView(yesBtn); }

然而,背景总是黑色,这真的令人困惑。人们有同样的问题, http://code.google.com/p/android/issues/detail?id=4394 我只想让它看起来更像对话用户。那么,如何让这个DialogActivity透明,永远不会覆盖底层屏幕? 谢谢。
这就是我创作风格的方式
< style name="CustomDialogTheme" parent="android:Theme.Dialog"> < item name="android:windowBackground"> @android:color/transparent< /item> < item name="android:windowNoTitle"> true< /item> < item name="android:windowFullscreen"> false< /item> < /style>

答案您可以通过此创建透明对话框。
public class DialogActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final AlertDialog alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle(" "); alertDialog.setMessage(""); alertDialog.setIcon(R.drawable.icon); alertDialog.setButton("Accept", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); alertDialog.setButton2("Deny", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }); alertDialog.show(); } }

在此之后只需在AndroidManifest.xml中添加一行,您可以在其中定义清单中的活动。
android:theme="@android:style/Theme.Translucent.NoTitleBar"

另一答案我找到的最简单的方法是将AndroidManifest中的activity主题设置为android:theme="@android:style/Theme.Holo.Dialog"然后在activity的onCreate方法中调用getWindow().setBackgroundDrawable(new ColorDrawable(0));
另一答案在这里添加所有答案只需要一件事。要实现像行为一样的完整对话框,可以通过更改窗口布局参数来重新定位对话框:
WindowManager.LayoutParams params = getWindow().getAttributes(); params.x = ...; params.y = ...; params.width = ...; params.height = ...; this.getWindow().setAttributes(params);

我们使用类似的技术在Tooleap SDK中实现浮动活动效果:

另一答案
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(0));

【Android(如何创建透明的对话框主题活动)】import android.graphics.drawable.ColorDrawable; on top :)
另一答案只需快速更新@ user824330即可。既然你有AlertDialog.Builder类,为什么不正确使用它呢?现在已弃用许多方法。最新的代码与此类似:
public class DialogActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("title") .setMessage("message") .setIcon(R.drawable.ic_launcher) .setPositiveButton("Yes", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) {} }) .setNegativeButton("No", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) {} }); final AlertDialog dialog = builder.create(); dialog.show(); }

}
另一答案您可能最好建立一个DialogFragment并使用setcontentview自定义对话框。
http://developer.android.com/reference/android/app/DialogFragment.html

    推荐阅读