Android已经定义好的ScaleType是不够用的,现在有一个需求: ImageView大小200*200,如果有一张图片,是100*500px的,要求填满ImageView并且等比例缩放,并且要以中心点为缩放点, ScaleType是除了Matrix外的都不能满足,所以只能自定义Matrix了,也就是一个矩阵,自定义非常棒:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.icon512);// imageview.setImageResource(R.drawable.icon512);
int height = bitmap.getHeight();
int width = bitmap.getWidth();
imageview.setImageBitmap(bitmap);
matrix = new Matrix();
matrix.setScale(2, 2, width / 2, height / 2);
// matrix.postTranslate(10, 10);
imageview.setImageMatrix(matrix);