作为对话的活动只是在更大的屏幕上

时间:2014-08-05 21:06:27

标签: java android android-layout android-holo-everywhere

我正在开发一款需要支持2.3+的Android应用。我正在使用HoloEverywhere作为布局库。我的应用程序在智能手机和平板电脑上完美运行,但是现在我对所有设备使用相同的布局,因此,在平板电脑中,很多布局都有很多空白。所以,我想是否可以在大屏幕上将此布局显示为弹出窗口(AlertDialog)。

我在互联网上搜索了一个回复,但我看到的每一个回复都不适用于我的情况。我不想更改我的布局文件(当然,我不想创建新的布局文件)。

任何人都可以指明解决我的问题,或者唯一的方法是为大屏幕创建新的布局?

3 个答案:

答案 0 :(得分:2)

您可以使用自己的布局文件作为对话框的内容视图。使用自定义视图,您可以为平板电脑创建其他/更大的对话框。也可以从活动创建对话框。请参阅http://developer.android.com/guide/topics/ui/dialogs.html#ActivityAsDialoghttp://developer.android.com/guide/topics/ui/dialogs.html#FullscreenDialog

答案 1 :(得分:0)

您可以在Manifest文件中将活动主题更改为对话框。参见:

<activity  
    android:name="Activity"  
    android:label="Home"  
    android:theme="@android:style/Theme.Holo.Dialog">  
</activity>

答案 2 :(得分:0)

您可以使用此代码在onCreate()中更改活动的高度和宽度。它提供比指定对话框主题更好的灵活性

   Display display = getWindowManager().getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    int width = size.x;
    int height = size.y;
    requestWindowFeature(Window.FEATURE_ACTION_BAR);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND,
            WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    android.view.WindowManager.LayoutParams params =
            getWindow().getAttributes();
    params.type = WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
    params.height = LayoutParams.WRAP_CONTENT;
    params.width = (int) (width / 1.2); // fixed width
    params.alpha = 1.0f;
    params.dimAmount = 0.5f;
    getWindow().setAttributes((android.view.WindowManager.LayoutParams)
            params);