Android 实现按照图片宽高改变imageview的宽高。

来源:互联网 发布:看新闻的软件 编辑:程序博客网 时间:2024/05/01 16:57

/**
* 自适应图片的ImageView
*
* @param context 上下文对象
* @param image imageveiw 对象
* @param bitmap 参数
*/
public static void setImageViewMathParent(Context context,
ImageView image, Bitmap bitmap) {

    //获得ImageView的参数类    ViewGroup.LayoutParams vgl = image.getLayoutParams();    if (bitmap == null) {        return;    }     //获取bitmap的宽度    float bitWidth = bitmap.getWidth();    //获取bitmap的宽度    float bithight = bitmap.getHeight();    //计算出图片的宽高比,然后按照图片的比列去缩放图片    float bitScalew = bitWidth / bithight;    //如果是图片的宽大于高  则采用屏幕的五分之三设置图片的宽 高按照比例计算    float imgWidth = DeviceUtils.getScreenWith(context) * 3 / 5;    //如果是图片的高大于宽  则采用屏幕的三分之一设置图片的高 宽按照比例计算    float imgHight = DeviceUtils.getScreenHeight(context) * 1 / 3;    //如果图片宽度大于高度    if (bitWidth > bithight) {        vgl.width = (int) imgWidth;        vgl.height = (int) (imgWidth / bitScalew);    } else {        //当图片的高度大于宽度的        vgl.width = (int) (imgHight * bitScalew);        vgl.height = (int) imgHight;    }    //设置图片充满ImageView控件    image.setScaleType(ImageView.ScaleType.CENTER_CROP);    //等比例缩放    image.setAdjustViewBounds(true);    image.setLayoutParams(vgl);    image.setImageBitmap(bitmap);}

//下面是获取屏幕宽度和高度的方法,最好放在跟屏幕相关的工具类

public static int getScreenWith(Context context) {    WindowManager manager = (WindowManager) context            .getSystemService(Context.WINDOW_SERVICE);    Display display = manager.getDefaultDisplay();    return display.getWidth();}public static int getScreenHeight(Context context) {    WindowManager manager = (WindowManager) context            .getSystemService(Context.WINDOW_SERVICE);    Display display = manager.getDefaultDisplay();    return display.getHeight();}

由于时间匆忙,没有时间写demo。用法比较简单。传入相应的参数即可。
如果是网络图片的话需要可以用
Bitmap bitmap=ImageLoader.getInstance().loadImageSync(url);

至于怎么转换bitmap对象网上有很多列子 ,可以自己查找

0 0
原创粉丝点击