将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); 

但不工作。

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

  • 如何animationmatrix“剪出”一个图像?
  • 基于OpenCV for Android的matrix乘法
  • 在Android上裁剪图像的视angular转换
  • 平滑滚动/惯性滚动/动量滚动
  • 从rotationMatrix中提取偏航,俯仰和滚动
  • 用Barcode Scanner(Vision)编码Data Matrix的未知编码
  • 水平或垂直翻转位图图像
  • 调整图像尺度android上的IMAGEVIEW
  • 好的,我已经纠正了错误,只好把下面的代码行:

     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); }