Anroid 常用控件(三)

xiaoxiao2021-02-28  159

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

转载请注明原文地址: https://www.6miu.com/read-27082.html

最新回复(0)