图片框(ImageView)
<1>常用属性:
android:src 设置ImageView所显示的Drawable资源的Id
android:maxHeight 最大高度
android:maxWidth 最大宽度
android:adjustViewBounds 设置Imageview是否调整自己的大小保持所显示图片的长宽比
android:scaleType 设置图片如何缩放以适应ImageView的大小
取值:
matrix 使用矩阵的方式缩放
fitXY 对图片横向纵向独立缩放,使得图片完全填充ImageView,可能会变形
fitStart 保持长宽比,图片较长的边与ImageView对应边一致,然后放在左上角
fitCenter 保持缩放比,图片较长的边与ImageView对应边一致,然后放在中间
fitEnd 保持缩放比,图片较长的边与ImageView对应边一致,然后放在右下角
center 图片放在中间,不缩放
centerCrop 保持纵横比缩放,使得图片能完全覆盖ImageView
centerInside 保持纵横比缩放,使得ImageView能完全显示图片
显示大图片:BitmapFactory.decodeFile(String pathName,Options opts);
从原有的图片中截取一部分作为新的图片
Bitmap newImage=Bitmap.createBitmap(oldImage,(int)rx,(int)ry,50,50);
第一个参数是原图片
第二个参数是从哪个坐标开始截取
第四、五个参数是截取多宽,多高。
代码示例:
//给图片控件设置触摸事件
iv_image_image.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent motionEvent) {
//获取整个控件的高和宽
height=iv_image_image.getHeight();
width=iv_image_image.getWidth();
//获取图片的高和宽
imageHeight=bm.getHeight();
imageWidth=bm.getWidth();
//获取触摸的坐标
float x=motionEvent.getX();
float y=motionEvent.getY();
//缩放比
double bi1=x*imageHeight/height;
double bi2=y*imageWidth/width;
if(bi1>imageWidth-50){
bi1-=50;
}
if(bi2>imageHeight-50){
bi2-=50;
}
//截取
Bitmap bmNew=Bitmap.createBitmap(bm,(int) bi1,(int) bi2,50,50);
iv_image_new.setImageBitmap(bmNew);
return true;
}
});
SD文件的读取
Environment类可以得到当前手机的一些信息,包括存储卡的信息
判断SD卡是否存在
if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//你的手机不支持SD扩展
}
得到存储卡的位置
Environment.getExternalStorageDirectory.getAbsolutePath()
代码示例:
//判断 手机是否有内存卡 内存卡是否可用
if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
//获取手机内存卡路径
String sdCardPath=Environment.getExternalStorageDirectory().getAbsolutePath();
//获取手机内存卡目录中的图片
File file=new File(sdCardPath+"/images");
files=file.listFiles();
}