我正在开发一款需要支持2.3+的Android应用。我正在使用HoloEverywhere作为布局库。我的应用程序在智能手机和平板电脑上完美运行,但是现在我对所有设备使用相同的布局,因此,在平板电脑中,很多布局都有很多空白。所以,我想是否可以在大屏幕上将此布局显示为弹出窗口(AlertDialog)。
我在互联网上搜索了一个回复,但我看到的每一个回复都不适用于我的情况。我不想更改我的布局文件(当然,我不想创建新的布局文件)。
任何人都可以指明解决我的问题,或者唯一的方法是为大屏幕创建新的布局?
答案 0 :(得分:2)
您可以使用自己的布局文件作为对话框的内容视图。使用自定义视图,您可以为平板电脑创建其他/更大的对话框。也可以从活动创建对话框。请参阅http://developer.android.com/guide/topics/ui/dialogs.html#ActivityAsDialog或http://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);