图片框(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(); }