android背景图片高度,Android ImgaView背景图片不失真处理

博客介绍了如何解决在Android应用中ImageView显示图片时出现失真、扭曲的问题。通过计算图片的最佳缩放比例,然后对图片进行整体缩放并居中显示,从而实现动态适配,确保图片清晰无变形。具体步骤包括计算宽度和高度的比例,使用Matrix进行矩阵变换,并设置ImageView的ScaleType。
摘要由CSDN通过智能技术生成

需求:app的欢迎界面采用一个简单的ImageView'显示一张图片的形式,但是图片总是会失真、扭曲。由于本人强迫症严重。所以就考虑了所有的思路后,在参考了网友的建议后,采用动态进行适配。

解决方案:

1.计算出最佳的长宽比;

2.将图片按最佳长宽比进行整体放大、缩小;

3.将处理后的图片添加到ImageView中。

package com.horse.util;

import android.graphics.Bitmap;

import android.graphics.Matrix;

import android.widget.ImageView;

/**

* 该应用程序的公共方法的集合类

* 作者:vaecer on 2015/7/19 12:03

* 邮箱:wuxm1011@163.com.

*/

public class SysUtil {

public void SysUtil() {

}

public static void setImageBackground(Bitmap bitmap, ImageView imageView, int width,

int height) {

//计算最佳缩放倍数,以填充宽高为目标

float scaleX = (float) width / bitmap.getWidth();

float scaleY = (float) height / bitmap.getHeight();

float bestScale = scaleX > scaleY ? scaleX : scaleY;

//以填充高度的前提下,计算最佳缩放倍数

float subX = (width - bitmap.getWidth() * bestScale) / 2;

float subY = (height - bitmap.getHeight() * bestScale) / 2;

Matrix imgMatrix = new Matrix();

imageView.setScaleType(ImageView.ScaleType.MATRIX);

//缩放最佳大小

imgMatrix.postScale(bestScale, bestScale);

//移动到居中位置显示

imgMatrix.postTranslate(subX, subY);

//设置矩阵

imageView.setImageMatrix(imgMatrix);

imageView.setImageBitmap(bitmap);

}

}

DisplayMetrics disMetrics = new DisplayMetrics();

this.getWindowManager().getDefaultDisplay().getMetrics(disMetrics);

int width = disMetrics.widthPixels;

int height = disMetrics.heightPixels;

ImageView welcomeBackground = (ImageView) findViewById(R.id.welcome_bg);

Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.cover);//link the drable image

SysUtil.setImageBackground(bitmap,welcomeBackground,width,height);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值