<ImageView
另外,android:background="@drawable/imageview_background"是给图片加了一个边框,其中
imageview_background.xml:
<?xmlversion="1.0" encoding="utf-8"?><shape
ImageView属性说明:
1、类概述
显示任意图像,例如图标。ImageView类可以加载各种来源的图片(如资源或图片库),需要计算图像的尺寸,比便它可以在其他布局中使用,并提供例如缩放和着色(渲染)各种显示选项。
2、XML属性
属性名称 | 描述 | |||||||||||||||||||||||||||
Android:adjustViewBounds | 是否保持宽高比。需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。 | |||||||||||||||||||||||||||
android:cropToPadding | 是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用,效果如下,实现代码见代码部分: | |||||||||||||||||||||||||||
android:maxHeight | 设置View的最大高度,单独使用无效,需要与setAdjustViewBounds一起使用。如果想设置图片固定大小,又想保持图片宽高比,需要如下设置: 1) 2) 3) | |||||||||||||||||||||||||||
android:maxWidth | 设置View的最大宽度。同上。 | |||||||||||||||||||||||||||
android:scaleType | 设置图片的填充方式。
| |||||||||||||||||||||||||||
android:src | 设置View的drawable(如图片,也可以是颜色,但是需要指定View的大小) | |||||||||||||||||||||||||||
android:tint | 将图片渲染成指定的颜色。见下图: |
然后,在代码里设置ImageView.最大宽度和最大高度,因为adjustViewBounds属性只有在设置了最大高度和最大宽度后才会起作用
int screenWidth = getScreenWidth(this);
ViewGroup.LayoutParams lp = testImage.getLayoutParams();
lp.width = screenWidth;
lp.height = LayoutParams.WRAP_CONTENT;
testImage.setLayoutParams(lp);
testImage.setMaxWidth(screenWidth);
testImage.setMaxHeight(screenWidth * 5); 这里其实可以根据需求而定,我这里测试为最大宽度的5倍