android的背景图片的适配,不失真的解决办法

废话不多说,如题在这里给出两种已测可行的方法:

  1. 直接动态设置要设置背景的控件宽高,这里举个例子: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);

如此一来就可以解决了(如果是浸入式状态栏就一定要对高度处理加状态栏的高度,否则会有不会填充全屏高度)

  1. 如果觉得在代码中再去处理不美观,推荐稍次的方法,首先在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图片来处理也是可以的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值