日期:2018.9.7
今天在使用ImageView的時候遇到了一個小問題,我把ImageView作爲Activity的背景(直接給Activity背景賦值只能在xml文件中靜態的賦值,而我需要的是在java文件中動態的給出不同的背景,所以用ImageView代替了。。。/尷尬)。但是這樣使用出現一個問題,我發現圖片背景有白邊,不能佔滿整個屏幕,於是查了一下資料,發現ImageView有個scaleType屬性(發現網上有很多跟我一樣的小白提出同樣的疑惑,所以我今天把這個問題寫在了每日一記裏)。
ImageView的屬性android:scaleType(靜態設置),即 ImageView.setScaleType(ImageView.ScaleType)(動態設置)。android:scaleType是控制圖片與ImageView的size相匹配的參數。ImageView.ScaleType / android:scaleType值的意義區別:
- CENTER /center 按圖片的原來size居中顯示,當圖片長/寬超過View的長/寬,則截 取圖片的居中部分顯示
- CENTER_CROP / centerCrop 按比例擴大圖片的size居中顯示,使得圖片長 (寬)等於或大於View的長(寬)
- CENTER_INSIDE / centerInside 將圖片的內容完整居中顯示,通過按比例縮小 或原來的size使得圖片長/寬等於或小於View的長/寬
- FIT_CENTER / fitCenter 把圖片按比例擴大/縮小到View的寬度,居中顯示
- FIT_END / fitEnd 把 圖片按比例擴大/縮小到View的寬度,顯示在View的下部分位置
- FIT_START / fitStart 把 圖片按比例擴大/縮小到View的寬度,顯示在View的上部分位置
- FIT_XY / fitXY 把圖片 不按比例 擴大/縮小到View的大小顯示
- MATRIX / matrix 用矩陣來繪製
可見適合我使用的屬性是centerCrop,按比例擴大圖片的size居中顯示,使得圖片長 (寬)等於或大於View的長(寬)(圖片會發生正常的裁剪)。
<ImageView
android:id="@+id/iv_background1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/launch_bg1"/>
第一個小知識點完結。
以前在VS平臺下做C#編程的時候,獲取系統時間很簡單(datatime.now),現在AS平臺下做編程,類比了一下,也很簡單,代碼如下:
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
// 如果想加入時分秒,pattern設爲"yyyy年MM月dd日 HH:mm:ss"
Date date = new Date(System.currentTimeMillis());
Toast.makeText(SplashActivity.this,simpleDateFormat.format(date),
Toast.LENGTH_SHORT).show();
上面代碼輸出的事當前日期:2018年9月7日。
第二個小知識點完結。