如何将平铺的背景添加到DialogFragment?

时间:2020-04-24 14:32:18

标签: android android-layout android-dialogfragment android-bitmap dialogfragment

我有一个DialogFragment,我试图在其中放置带有平铺位图的自定义背景。

我在styles.xml中使用自定义对话框主题设置背景:

<item name="android:windowBackground">@drawable/dialog_background</item>

这是我的dialog_background.xml可绘制对象,其中包含平铺背景的图层列表:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape
        android:shape="rectangle">
        <gradient
            android:angle="90"
            android:endColor="@color/background"
            android:startColor="@color/background" />
        <corners android:radius="10dp" />
        <stroke
            android:width="2dp"
            android:color="@color/button_color" />
    </shape>
</item>
<item>
    <bitmap
        android:src="@drawable/full_bloom"
        android:tileMode="repeat"
        android:dither="true" />
</item>
<item>
    <shape>
        <corners android:radius="10dp" />
        <stroke
            android:width="2dp"
            android:color="@color/button_color" />
    </shape>
</item>
</layer-list>

它工作正常,但是我的对话框有一个问题,这样做是为了达到WRAP_CONTENT高度:

@Override
public void onResume() {
    super.onResume();
    int sw = Util.getInstance().getScreenWidth(getActivity());
    int sh = Util.getInstance().getScreenHeight(getActivity());
    getDialog().getWindow().setLayout((int) (sw * 0.55), ViewGroup.LayoutParams.WRAP_CONTENT);
}

如果我将平铺的位图添加到对话框的层列表背景,它将停止执行WRAP_CONTENT以获取高度。而是将高度推到与父级匹配。

如何解决?

0 个答案:

没有答案