【 Android 】控制ImageView大小&位置

ImageView: 一般是使用來放圖案的view。

xml:

  <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignLeft="@+id/textView1"

        android:layout_below="@+id/textView1" >

     <ImageView
        android:id="@+id/imageView1"
        android:layout_width="100dip"  //設置此view的寬
        android:layout_height="50dip"   //設置此view的高
        android:layout_marginLeft="50dip"   //設置此view離framelayout的左邊間距 
        android:layout_marginTop="100dip"  //設置此view離framelayout的上面間距
        android:scaleType="fitXY"   //設置圖案可以完整充滿此fiew
        android:src="@drawable/yellowLine" />


 </FrameLayout>



上列範例可以看到藍色框框是整個framelayou,而黃色線條是一個imageview;
先設定imageview的layout_hight、layout_weigh為固定值之後再設定
laoyout_scaletyp = fitxy就可以將整張圖充滿整個imageview(如圖黃色部份); 再設定layout_marginleft、layout_margintop就可以控制imageview距離整個framelayout的位置。

ps: 此作法比較適合圖案是單一顏色或簡單的圖案,而且是針對單一device的解析度而設計。

下列為imageview的屬性設置

属性名称
描述
android:adjustViewBounds
是否保持宽高比。需要与 maxWidth、 MaxHeight一起使用,否则单独使用没有效果。
android:cropToPadding
是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用,效果如下,实现代码见代码部分:
  

android:maxHeight
设置 View的最大高度,单独使用无效,需要与setAdjustViewBounds一起使用。如果想设置图片固定大小,又想保持图片宽高比,需要如下设置:
1)  设置 setAdjustViewBounds为 true;
2)  设置 maxWidth、 MaxHeight;
3)  设置设置 layout_width和 layout_height为wrap_content。
android:maxWidth
设置 View的最大宽度。同上。
android:scaleType
设置图片的填充方式。
matrix
0
用矩阵来绘图

fitXY
1
拉伸图片(不按比例)以填充 View的宽高

layout_
height
:30px

layout_
width
:120px
fitStart
2
按比例拉伸图片,拉伸后图片的高度为 View的高度,且显示在View的左边

fitCenter
3
按比例拉伸图片,拉伸后图片的高度为 View的高度,且显示在View的中间

fitEnd
4
按比例拉伸图片,拉伸后图片的高度为 View的高度,且显示在View的右边

center
5
按原图大小显示图片,但图片宽高大于 View的宽高时,截图图片中间部分显示


layout_
height
:60px

layout_
width
:80px

padding
:10px

centerCrop
6
按比例放大原图直至等于某边 View的宽高显示。

centerInside
7
当原图宽高或等于View的宽高时,按原图大小居中显示;反之将原图缩放至 View的宽高居中显示。

android:src
设置 View的 drawable(如图片,也可以是颜色,但是需要指定 View的大小 )
android:tint
将图片渲染成指定的颜色。见下图:
左边为原图,右边为设置后的效果,见后面代码。


參考來源:http://daydayup1989.iteye.com/blog/777766



留言

這個網誌中的熱門文章

【 Android 】利用file取得資料夾內檔案

【 Android 】防止系統進入休眠和螢幕恆亮