首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中移动布局/视图中的视图

在Android中移动布局/视图中的视图
EN

Stack Overflow用户
提问于 2010-03-23 14:23:44
回答 1查看 3.3K关注 0票数 0

我有不止一个问题,但我将从更重要、更有问题的问题开始:

我有一个里面有ImageView的FrameLayout。我需要获取活动正在发生的屏幕的“可用区域”的大小,所以我在视图上设置了onSizeChanged (我扩展了ImageView类)。这里一切都很好。现在我有了一个1000x1000的图像,我想要在屏幕上显示,但不能缩放。我想把它剪短,真的。如果我使用viewObject.setLayoutParams(new Gallery.LayoutParams(1000, 1000)); )设置ImageView尺寸,我会得到正确显示的图像,但是onSizeChanged事件总是返回"1000 x 1000“自定义尺寸,而不是实际的屏幕大小值。有没有什么想法可以用图片的真实大小来显示图片(没有比例!)并且仍然获得报告屏幕可用空间的视图?当然,我也可以根据需要更改布局。

。Amplexos。

EN

回答 1

Stack Overflow用户

发布于 2010-03-23 21:14:33

你是想知道ImageView的尺寸吗?如果是这样的话,你可以使用getLocalVisibleRect来获取。下面是它的大致实现方式:

代码语言:javascript
复制
ImageView yourImageView;

public void onCreate(...){
    setContentView(...)
    yourImageView = (ImageView) findViewById(...);
    (...)
}

getImageViewSize(){
    Rect imageViewSize = new Rect();
    yourImageView.getLocalVisibleRect(imageViewSize);
    // imageViewSize now has all the values you need
    Log.d("Your log tag", "ImageView width = " + (imageViewSize.right -
            imageViewSize.left));
}

然而,这里有一个陷阱。您必须确保在视图在屏幕上完成布局之前,您不会尝试获取视图的大小。换句话说,如果您尝试以onCreate为单位获取它的大小,那么它的大小将为0。你必须在之后获得它,例如,在你调整图像大小的同时,假设这是通过一个按钮完成的。(如果您正在使用SurfaceHolder,您也可以在surfaceCreated回调期间调用它,但我怀疑您是否在使用其中的一个...)

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

https://stackoverflow.com/questions/2497959

复制
相关文章

相似问题

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