废话不多说,如题在这里给出两种已测可行的方法:
- 直接动态设置要设置背景的控件宽高,这里举个例子:ImageView控件要显示该图片背景:
布局里面这样写
<ImageView
android:id="@+id/iv_share_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
在java代码中可以:
//ivShareBg是该显示控件的绑定,不要忘记了
int width = DensityUtil.getScreenWidth(this);//获取屏幕宽度
ViewGroup.LayoutParams params = ivShareBg.getLayoutParams();
params.width = width;
params.height = (int) (1334f/ 750 * width);//1334和750是背景原图的宽高
ivShareBg.setLayoutParams(params);
ivShareBg.setImageResource(R.drawable.bg_image);
如此一来就可以解决了(如果是浸入式状态栏就一定要对高度处理加状态栏的高度,否则会有不会填充全屏高度)
- 如果觉得在代码中再去处理不美观,推荐稍次的方法,首先在drawable文件目录下创建一个xml文件命名backgrounp_image_test 其中的内容大体如下:
这里的bg_image 就是你要展示的背景图片,另外可以根据需要设置tileMode的值
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/bg_image"
android:tileMode="disabled"
android:dither="true">
</bitmap>
最后在对应layout的xml中的iv_share_bg的控件设置android:background="@drawable/backgrounp_image_test" 就可以了
当然了用.9.png图片来处理也是可以的