我有一个可调整大小的drawable,已将其缩放到所需的高度(25dp),宽度按比例缩放。但是,我想要一张宽度也为25dp的正方形图片。然而,我不想扭曲图像,因此我想剪裁右侧和左侧相等部分的drawable,以给我中心的25dpx25dp。这个可行吗?如何实现?我已经尝试了两个小时,我准备放弃了...
Bitmap target= Bitmap.createBitmap(width, height,Config.ARGB_8888);
Canvas canvas = new Canvas(target)
// 根据源图片的宽高比例计算出需要缩放的比例
float hScale = width/(float)source.getWidth();
float vScale = height/(float)source.getHeight();
float scale = Math.min(hScale, vScale);
// 构造一个矩阵,用于对图片进行缩放和平移操作
Matrix matrix = new Matrix();
matrix.setScale(scale, scale);
matrix.postTranslate(width/2 - source.getWidth()/2 * scale, height/2 - source.getHeight()/2 * scale);
// 设置画布颜色为黑色
canvas.drawColor(Color.BLACK);
// 在画布上绘制缩放后的图片
canvas.drawBitmap(source, matrix, new Paint());