将Activity显示为对话框时如何自定义宽度和高度

如果我已经定义了一个Activity:

public class DialogActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(dialog_activity.xml); } } 

我想显示上面的活动就像一个对话框,所以在AndroidManifest.xml文件中,我宣布这个活动如下:

 <activity android:name=".DialogActivity" android:theme="@android:style/Theme.Dialog"/> 

在这一点上一切都很好,我的DialogActivity显示为一个对话框。

问题是如何自定义DialogActivity的宽度和高度,使它更像一个小对话框? (目前默认占用大部分屏幕)

—————————-更新——————— –

我定义了如下的自定义主题:

 <style name="myDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:width">100dip</item> <item name="android:height">100dip</item> </style> 

然后,在AndroidManifest.xml中声明DialogActivity为。

 <activity android:name=".DialogActivity" android:theme="@style/myDialog"/> 

我的DialogActivity现在甚至占用整个屏幕:( 宽度高度的定义:

 <item name="android:width">100dip</item> 

在主题不起作用,为什么?

Solutions Collecting From Web of "将Activity显示为对话框时如何自定义宽度和高度"

我终于想出了一种方法来定制我的DialogActivity的大小。

这是在DialogActivityonCreate()方法中,添加下面的代码:

 WindowManager.LayoutParams params = getWindow().getAttributes(); params.x = -20; params.height = 100; params.width = 550; params.y = -10; this.getWindow().setAttributes(params); 

我有类似的问题,我用我的活动下面的主题

 android:theme="@style/Base.Theme.AppCompat.Light.Dialog" 

以下代码解决了我的问题

  setContentView(R.layout.activity_layout); getWindow().setLayout(width(pixels),height(pixels)); 

您可以在布局xml文件中设置布局高度和宽度

你甚至可以提到像android:layout_width / android:layout_height的“240px”的值