android的pinch-to-zoom库PhotoView和TouchImageView在纵向图像上存在问题
我想显示图像并允许缩放。我的应用程序是一个空白活动,上面有一个线性布局,上面有ImageView,下面是一个水平线性布局,上面有一些按钮。 我两者都试过了 及 它们都有类似的问题:android的pinch-to-zoom库PhotoView和TouchImageView在纵向图像上存在问题,android,pinchzoom,portrait,Android,Pinchzoom,Portrait,我想显示图像并允许缩放。我的应用程序是一个空白活动,上面有一个线性布局,上面有ImageView,下面是一个水平线性布局,上面有一些按钮。 我两者都试过了 及 它们都有类似的问题: 右侧的工具栏菜单不响应触摸(在4.4.4和4.4.2中)。 它似乎在5.0.2中响应 在纵向模式下拍摄的照片无法正常显示或缩放:它们仅使用ImageView的一部分 我已经从TouchImageView查看了代码,并认为我可以看到问题2的答案:例程从代码中获得宽度和高度,如下所示: float w = getDraw
float w = getDrawable().getIntrinsicWidth();
要在我的应用程序中正确显示肖像模式照片,我需要这样做
imageRotation = getOrientation(photoFilePath);
imgView.setRotation(imageRotation);
这会旋转照片以显示,但intrinsicWidth和intrinsicHeight不会更改。因此,缩放软件的尺寸是错误的。奇怪的是,这以前从未被发现过。(也许是我的错。)
如果我是对的,那么我需要更改代码,以便测试imgView.ROTATION属性
编辑:我可以检测旋转,然后在纵向模式图像中切换高度和宽度。这有点帮助,但还不够。imageview中仍有未使用的空格。需要做更多的工作,这超出了我的能力范围
谢谢你的帮助。我花了一段时间才弄明白。我的问题是如何旋转肖像图像,使其在屏幕上处于正确的方向。我曾经
imgView.setRotation((float)imageRotation);
这就是问题的根源!
这样做(即不使用imageView功能)
工作。我正在使用。试试看!这太棒了,唯一的缺点是你需要自己实现一些东西,比如在触摸屏上隐藏工具栏,但这并不难。嗨。我从文件中读取图像,获取位图,然后修改位图并显示它。我可以使用这个库来显示位图吗?可以,但是我现在正在讨论位图的一个问题:使用内存中的位图时,图像的缩放和拖动速度要慢得多。我建议您先保存已编辑的图像,然后在此库中显示它。
Matrix matrix = new Matrix();
matrix.postRotate(imageRotation);
bmp = Bitmap.createBitmap(bmp , 0, 0, bmp .getWidth(), bmp.getHeight(), matrix, true);