android之ImageView

jerry Android 2015年11月23日 收藏

ImageView

首先确定下ImageView的全路径:android.widget.ImageView.

描述: 

显示任意图像,例如图标。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

设置图片的填充方式。

android:src

设置View的drawable(如图片,也可以是颜色,但是需要指定View的大小)

android:tint

将图片渲染成指定的颜色。

代码示例:

点击图片时切换图片并且将另一个图片变暗(主要是对图片透明度的利用)

package cn.com.chenzheng_java;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
/**
 * 
 * @author chenzheng_java
 *
 */
public class ImageViewActivity extends Activity {

	private ImageView image1;
	private ImageView image2;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.imageview);
		
		image1 = (ImageView) findViewById(R.id.imge1);
		image2 = (ImageView) findViewById(R.id.imge2);
	// 	resetButton = (Button)findViewById(R.id.resetButton);
		
		
		final int [] ids = new int[]{
				R.drawable.red_a,
				R.drawable.blackk,
				R.drawable.beauty
		};
		
		
		image1.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				int id = ids[0];
				 image1.setScaleType(ScaleType.CENTER);// 设置剪辑模式
				
				// 设置imageView的背景,如果已经有图片存在的话,则背景会被遮住
				// image1.setBackgroundResource(id);
				
				// 设置ImageView上显示的图片
				 image1.setImageResource(id);
				 
				 image2.setImageResource(R.drawable.icon);
				 image2.setAlpha(100);// 设置透明度,255时为无透明度
			
				
			}
		});

	}
}

-----------------------------------------------------------

如何为ImageView设置图片呢,主要方法有:

三种设置图片源的方法

ImageView iv; 

String fileName = "/data/data/com.test/aa.png; 
Bitmap bm = BitmapFactory.decodeFile(fileName); 
iv.setImageBitmap(bm); 

ImageView iv = new ImageView(context); 
iv.setImageResource(iv[position]); 
iv.setScaleType(ImageView.ScaleType.FIT_XY); 
iv.setLayoutParams(new Gallery.LayoutParams(136,88)); 

mImageView = (ImageView)this.findViewById(R.id.myImageView1); 
mImageView.setImageDrawable(getResources().getDrawable(R.drawable.right));