2012-07-07 75 views
0

我有一个布局,顶部有一些水平滚动,底部有一些文本框,剩下的空间放在中间,我用ImageView填充它。在该ImageView中我加载了一个位图。我们称之为ImageView 底部一个在屏幕上获取像素大小,而不是实际大小?

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

这两个ImageView都在RelativeLayout中,所以我可以移动顶部布局。

现在我遇到的问题是,我无法获取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的大小。

任何想法我做错了什么?

回答

0

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

我扩展ImageView的类与我MyImageView类和在onMeasure倍率我已经计算的比例因子,并相应地创建了一个矩形根据我的RelativeLayout的表示坐标的边界,在其内部的是MyImageView

我这样走,因为我在这里找到一篇文章,提到创建自己的ImageView类,找不到链接了。

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

相关问题