首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用夹点缩放肖像图像上的PhotoView和TouchImageView库

用夹点缩放肖像图像上的PhotoView和TouchImageView库
EN

Stack Overflow用户
提问于 2016-02-29 18:48:29
回答 1查看 707关注 0票数 0

我想要显示图像,并允许捏缩放。我的应用程序是一个空白活动,上面是带有ImageView的线性布局,下面是带有一些按钮的水平线性布局。我尝试过PhotoViewTouchImageView --它们都有类似的问题:

  1. 右边的工具栏菜单不响应触摸( 4.4.4和4.4.2)。它似乎在5.0.2中作出了反应。
  2. 在肖像模式下拍摄的照片不能正确显示或缩放:它们只使用ImageView的一部分。

我查看了TouchImageView的代码,认为我可以看到问题2的答案:例程从代码中获得宽度和高度,如下所示:

代码语言:javascript
复制
float w = getDrawable().getIntrinsicWidth();

要在我的应用程序中正确显示肖像模式照片,我需要这样做

代码语言:javascript
复制
imageRotation = getOrientation(photoFilePath);
imgView.setRotation(imageRotation);

这将旋转照片以供显示,但是intrinsicWidth和intrinsicHeight不会改变。因此,缩放软件有错误的维度。奇怪的是,这件事从来没有被抓住过。(也许这是我的错。)如果我是对的,那么我需要修改代码,以便测试imgView.ROTATION属性。

编辑:我可以检测旋转,然后切换高度和宽度的纵向模式图像。这有点帮助,但还不够。图像视图中仍有未使用的空白。还需要做更多的工作,这超出了我的能力。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2016-03-15 23:41:08

我花了一段时间才弄明白。我的问题是如何旋转肖像图像,使它们在屏幕上的正确方向。我用过

代码语言:javascript
复制
        imgView.setRotation((float)imageRotation);

这引起了问题!这样做(即不使用imageView功能)

代码语言:javascript
复制
    Matrix matrix = new Matrix();
    matrix.postRotate(imageRotation);
    bmp = Bitmap.createBitmap(bmp , 0, 0, bmp .getWidth(), bmp.getHeight(), matrix, true);

起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35707215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档