保持长宽比 对背景图像进行修改android:scaleType="fitXY"

  关于android中ImageView的外观,即图片在其内显示出的样子,与布局文件中adjustViewBonds和scaleType
属性的关系。我进行了一些探索。现跟你们共享,欢迎各位指教。分别将adjustViewBonds设为true和false,与各类scaleType搭配,产生了不一样效果。(上面的ImagView的adjstViewBonds值为false;下面的ImagView的adjstViewBonds值为true;两个ImagView大小相同)以下:android

代码:ide

<ImageView  
        android:id="@+id/imageView1"  
        android:layout_width="fill_parent"  
        android:layout_height="200dip"  
        android:adjustViewBounds="false"  
        android:scaleType="centerInside"//此处每次更改  
        android:src="@drawable/ic_3" />//此处两幅图间更改,一副图的大小较小,另外一幅的较大。  
  
    <ImageView  
        android:id="@+id/imageView2"  
        android:layout_width="fill_parent"  
        android:layout_height="200dip"  
        android:adjustViewBounds="true"  
        android:scaleType="centerInside"//此处每次更改  
        android:src="@drawable/ic_3" />//此处两幅图间更改,一副图的大小较小,另外一幅的较大。

 原图:



  

一、scaleType=“matrix”
如图pic一、pic2.
是保持原图大小、从左上角的点开始,以矩阵形式绘图。布局


 

pic1
 
spa

pic2
 
二、scaleType=“fitXY”
如图pic三、pic4.
是将原图进行横方向(即XY方向)的拉伸后绘制的。code


pic3
 
xml

pic4
 
三、scaleType=“fitStart”
如图pic五、pic6。
是将原图沿左上角的点(即matrix方式绘图开始的点),按比例缩放原图绘制而成的。图片


pic5
 
ip

pic6
 
四、scaleType=“fitCenter”
如图pic七、pic8。
是将原图沿上方居中的点(即matrix方式绘图第一行的居中的点),按比例缩放原图绘制而成的。it


pic7
 
class

pic8
 
五、scaleType=“fitEnd”
如图pic九、pic10。、
是将原图沿下方居中的点(即matrix方式绘图最后一行的居中的点),按比例缩放原图绘制而成的。


pic9
 

pic10
 
六、scaleType=“Center”
如图pic十一、pic12。
是保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像。


pic11
 
 pic12
 
七、scaleType=“centerCrop”
如图pic1三、pic14。
不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以填满
ImagView为目标,对原图进行裁剪)。


pic13
 

pic14
 
八、scaleType=“centerInside”
如图pic1五、pic16.
不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以显示
完整图片为目标,对原图进行缩放)。


pic15
 

pic16      (事实证实,adjustViewBonds单独设置无影响。)      依本人之见,scaletype的种类分为三类matrix(默认)、fit-X类、和center类。matrix就很少说。fit-X类中,fitStart、fitCenter和fitEnd之间的都是根据须要使原图改变对ImgView进行适应,按matrix进行绘制,但它们的区别在于基准不一样。fitStart的基准为最上角的点(即matrix方式开始的点)fitCenter的基准点为中间的点(matrix方式中可使图片居中的点),而fitEnd的基准点为右下角的点(即matrix方式最后绘制点)。center类中,center、centerCrop、centerInside都是以原图的几何中心点和ImagView的几何中心点为基准,且只绘制ImagView大小的图像,不一样的是是否保持原图大小和绘图的目标不一样、采起的手段不一样。

相关文章
相关标签/搜索