如何设置以对话框为主题的活动的百分比宽度

时间:2013-03-12 05:12:23

标签: android android-layout

我有一个带有对话框主题的活动(Theme.Holo.DialogWhenLarge)。它看起来太窄了,我希望它能填满更大比例的屏幕。我试图通过覆盖windowMinWidthMinorwindowMinWidthMajor属性来实现此目的。

我的活动使用的主题看起来像这样......

<style name="MyTheme" parent="@android:style/Theme.Holo.DialogWhenLarge">
    <item name="android:windowMinWidthMajor">90%</item>
    <item name="android:windowMinWidthMinor">90%</item>
</style>

但是,似乎windowMinWidthMajorwindowMinWidthMinor没有效果。谁能解释我做错了什么?

2 个答案:

答案 0 :(得分:3)

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //Some code here
        setWindowHeight(90);
    }
    /**
     * Set percentage width height
     * @param percent percent from current size. From 0 to 100.
     */
    private void setWindowHeight(int percent){
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int screenHeight = metrics.heightPixels;
        WindowManager.LayoutParams params = getWindow().getAttributes();
        params.height = (int)(screenHeight*percent/100);
        this.getWindow().setAttributes(params);
    }

答案 1 :(得分:-1)

设置机器人的百分比是不可能的,但是有一种方法。我所做的是获取屏幕宽度并乘以我想要的视图或项目的百分比(例如:如果我想要填充宽度的40%,如果是屏幕宽度* 0.4)