将matrix图像定位在图像的中心

我创build了一个图片库,一切正常。 放大和移动图像是必需的

ImgView.setScaleType (ImageView.ScaleType.MATRIX) 

当我这样做时,我得到的图像很小,所以我打电话给方法

 scaleFactor = view.getWidth()/(float)view.getDrawable().getIntrinsicWidth(); matrix.setScale(scaleFactor, scaleFactor); 

所以不要错过图像的大小,但正如你所看到的,图像高于一切,需要留在屏幕的中心。

我试过这个

 matrix.postTranslate((screen_width-image_width)/2, (screen_height-image_height)/2); 

但不工作。

任何想法? 对不起,不插入图像,但我不能因为我的声誉。 非常感谢你提前

Solutions Collecting From Web of "将matrix图像定位在图像的中心"

好的,我已经纠正了错误,只好把下面的代码行:

 RectF drawableRect = new RectF(0, 0, image_width, image_height); RectF viewRect = new RectF(0, 0, screen_width, screen_height); matrix.setRectToRect(drawableRect, viewRect, Matrix.ScaleToFit.CENTER); 

希望有人帮忙,非常感谢你的回答。

 @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); screenWidth = layout.getWidth(); screenHeight = layout.getHeight(); Log.e("", "Image Width : " + imageWidth + " > " + imageHeight); Log.e("", "screen Width : " + screenWidth + " > " + screenHeight); RectF drawableRect = new RectF(0, 0, imageWidth, imageHeight); RectF viewRect = new RectF(0, 0, screenWidth, screenHeight); matrix.setRectToRect(drawableRect, viewRect, Matrix.ScaleToFit.CENTER); img.setImageMatrix(matrix); }