5

我有一个带有对话框主题 ( 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没有效果。谁能解释我做错了什么?

4

2 回答 2

4
@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);
    }
于 2017-02-15T11:53:15.667 回答
-1

为 android 设置百分比是不可能的,但是有办法解决。我所做的是获取屏幕宽度并将其乘以我希望我的视图或项目的百分比(例如:如果我想要填充 40% 的宽度,如果是 Screen-Width * 0.4)

于 2013-03-12T05:18:34.237 回答