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

这段代码展示了如何创建一个自适应图片宽高的ImageView。通过传入上下文、ImageView对象和Bitmap,该方法能根据图片的宽高比例调整ImageView的大小。如果图片来自网络,可以使用ImageLoader加载并转换为Bitmap。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
* 自适应图片的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对象网上有很多列子 ,可以自己查找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值