我需要在ImageView中缩放Image,我需要使用矩阵来实现,
所以我这样做;
private void scaleImage(float scaleFactor, float focusX,float focusY) {
Matrix displayMatrix= new Matrix();
matrix.postScale(scaleFactor, scaleFactor);
displayMatrix.set(matrix);
imageView.setImageMatrix(displayMatrix);
}
问题是无论我无法将图像置于ImageView内部,
我需要将图像放在中心(如果图像小于视图,则留下白边)
我已经好几个小时了,请帮忙。
我已经广泛关注这个https://stackoverflow.com/a/6172226/1815311,,但没有成功。
答案 0 :(得分:1)
您所要做的就是找到新的x和y坐标放置图像然后平移矩阵,这样图像就会移动到ImageView的中心。您的整个scaleImage方法可能如下所示:
private void scaleImage(float scaleFactor, float focusX, float focusY) {
Matrix displayMatrix = new Matrix();
Matrix matrix = imageView.getImageMatrix();
float x = (imageView.getWidth() - imageView.getDrawable().getIntrinsicWidth() * scaleFactor) / 2;
float y = (imageView.getHeight() - imageView.getDrawable().getIntrinsicHeight() * scaleFactor) / 2;
matrix.postScale(scaleFactor, scaleFactor);
matrix.postTranslate(x, y);
displayMatrix.set(matrix);
imageView.setImageMatrix(displayMatrix);
}
答案 1 :(得分:0)
试试我的代码希望能帮到你:
typedef enum cell game_board[BOARDHEIGHT][BOARDWIDTH];