2013-03-12 103 views
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没有任何效果。任何人都可以解释我做错了什么吗?

+0

如果我在SDK上使用'parent =“android:style/Theme.Holo.Light.Dialog”',那么这对我有用23 – 2016-08-09 15:24:21

回答

-1

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

+2

该属性的文档中另有说明:“可能是小数值,是一个浮点数,后跟%或%p,例如“14.5%”。“ (http://developer.android.com/reference/android/R.attr.html#windowMinWidthMajor – Project 2015-12-15 00:42:42

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); 
    } 
相关问题