首页 > 技术文章 > 7.Android学习之真机测试欢迎界面图片无法加载的问题

smalllemon 2019-02-21 22:10 原文

在制作欢迎界面时使用了图片作为欢迎界面,在虚拟机上测试时,图片可以正常加载,但是在真机上测试时确出现了图片失真的问题,主要原因是由于图片和手机分辨率的问题

在查询了很久,实验了无数次方法后终于找到了解决的办法:

在layout文件中采用ImageView控件进行加载,不采用在layout中设置背景为图片的做法,

在使用ImageView控件时,需要设置图片随分辨率进行变化,代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_height="match_parent"
    android:layout_width="match_parent">
<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="centerCrop"//随分辨率缩放
    android:src="@drawable/bg1"/>

</RelativeLayout>

 ImageView控件有个重要的属性是ScaleType,该属性用以表示显示图片的方式,下面写上ImageView的android:scaleType的属性:

       ScaleType.CENTER::图片大小为原始大小,如果图片大小大于ImageView控件,则截取图片中间部分,若小于,则直接将图片居中显示。
  ScaleType.CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即不能留有空白,缩放后截取中间部分进行显示。
  ScaleType.CENTER_INSIDE:将图片大小大于ImageView的图片进行等比例缩小,直到整幅图能够居中显示在ImageView中,小于ImageView的图片不变,直接居中显示。
  ScaleType.FIT_CENTER:ImageView的默认状态,大图等比例缩小,使整幅图能够居中显示在ImageView中,小图等比例放大,同样要整体居中显示在ImageView中。
  ScaleType.FIT_END:缩放方式同FIT_CENTER,只是将图片显示在右方或下方,而不是居中。
  ScaleType.FIT_START:缩放方式同FIT_CENTER,只是将图片显示在左方或上方,而不是居中。
  ScaleType.FIT_XY:将图片非等比例缩放到大小与ImageView相同。
  ScaleType.MATRIX:是根据一个3x3的矩阵对其中图片进行缩放

推荐阅读