日期: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日。
第二个小知识点完结。