5

ダイアログをテーマにしたアクティビティがあります(Theme.Holo.DialogWhenLarge)。狭すぎるように見えるので、画面の大部分を占めるようにしたいと思います。windowMinWidthMinor属性とwindowMinWidthMajor属性をオーバーライドすることで、これを実現しようとしています。

私のアクティビティで使用されているテーマは次のようになります...

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

ただし、のように見え、効果はwindowMinWidthMajorありwindowMinWidthMinorません。誰かが私が間違っていることを説明できますか?

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 に答える