gpt4 book ai didi

android - 如何在 ImageView 中获取 Drawable 的尺寸?

转载 作者:IT王子 更新时间:2023-10-28 23:55:47 28 4
gpt4 key购买 nike

在 ImageView 中检索 Drawable 尺寸的最佳方法是什么?

我的 ImageView 有一个初始化方法,我在其中创建 ImageView:

private void init() {
coverImg = new ImageView(context);
coverImg.setScaleType(ScaleType.FIT_START);
coverImg.setImageDrawable(getResources().getDrawable(R.drawable.store_blind_cover));
addView(coverImg);
}

在布局或测量过程中的某个时刻,我需要 Drawable 的确切尺寸来调整它周围的其余组件。

如果我使用 coverImg.getDrawable(),

coverImg.getHeight()coverImg.getMeasuredHeight() 不会返回我需要的结果。 getBounds() 我在 ImageView 缩放之前得到了尺寸。

感谢您的帮助!

最佳答案

刚刚试了一下,对我有用:

int finalHeight, finalWidth;
final ImageView iv = (ImageView)findViewById(R.id.scaled_image);
final TextView tv = (TextView)findViewById(R.id.size_label);
ViewTreeObserver vto = iv.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
// Remove after the first run so it doesn't fire forever
iv.getViewTreeObserver().removeOnPreDrawListener(this);
finalHeight = iv.getMeasuredHeight();
finalWidth = iv.getMeasuredWidth();
tv.setText("Height: " + finalHeight + " Width: " + finalWidth);
return true;
}
});

ViewTreeObserver 将让您在绘制布局之前监控布局(即所有内容都已测量),从这里您可以从 ImageView 获得缩放的测量结果.

关于android - 如何在 ImageView 中获取 Drawable 的尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4649438/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com