0

我有一个布局,顶部有一些水平滚动,底部有一些文本框,中间有任何空间,我用 ImageView 填充它。在那个 ImageView 中,我加载了一个位图。让我们将此 ImageView 称为底部

现在,在该 ImageView 之上,我动态加载另一个 ImageView,用户可以通过拖动它来移动它。第二个 ImageView (顶部)有一个小图标,将覆盖在我的位图顶部并保存。将其视为徽标/水印。

两个 ImageView 都在一个相对布局中,所以我可以移动顶部布局。

现在我遇到的问题是我无法获取底部ImageView 中加载的位图的大小。

我尝试了以下方法:

DisplayMetrics om = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(om);
tv.setText("W:" + b.getScaledWidth(om) + " H:" + b.getScaledHeight(om));

但它不起作用,b.getScaledWidth(om)返回我的位图的实际宽度,而不是屏幕上的宽度,它应该是(如果是横向图像)480px,我是手机的屏幕大小上测试。

附加信息:为什么我需要这个是因为我在底部 ImageView 中显示的图像与 ImageView 的比例不同。所以我可以得到 ImageView 的大小,但是这个 ImageView 比图像本身大。因为我需要将顶部 ImageView 保持在底部 ImageView 中显示的图像边界内,所以我需要知道底部 ImageView 中图像的大小,而不是底部 View 本身的大小。

任何想法我做错了什么?

4

1 回答 1

0

我没有找到办法,所以我“手动”做了。

我用MyImageView类扩展了ImageView类,在onMeasure覆盖中我计算了比例因子,并根据我的RelativeLayout创建了一个表示坐标边界的Rect,其中是MyImageView

我之所以走这条路,是因为我在这里找到了一篇关于创建自己的ImageView类的帖子,但再也找不到链接了。

无论如何,在那之后我检查顶部 ImageView 的顶部/左侧位置, onTouch 方法中移动它时设置最大位置

于 2012-07-10T14:18:06.747 回答