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));