gpt4 book ai didi

android - imageView.getWidth();返回屏幕而不是位图宽度

转载 作者:行者123 更新时间:2023-11-29 14:25:09 25 4
gpt4 key购买 nike

我有一个像这样的 ImageView

 <ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignTop="@+id/textView3"
android:layout_centerHorizontal="true"
android:layout_marginBottom="80dp"
android:layout_marginTop="40dp"
android:onClick="Time"
android:adjustViewBounds="false"
android:src="@drawable/ic_launcher" />

我正在尝试通过使用获取在 imageview 中显示的图像的宽度

ImageView artCover = (ImageView)findViewById(R.id.imageView1);
int coverWidth = artCover.getWidth();

但返回的宽度与屏幕宽度相同,而不是图像宽度(当图像宽度小于屏幕宽度时)。如果我这样做

int coverHeight = artCover.getHeight(); 

我得到了正确的图像高度。如何获取显示图片的宽度?

最佳答案

您的 imageview 的位图可能已相应缩放和对齐。您需要考虑到这一点。

// Get rectangle of the bitmap (drawable) drawn in the imageView.
RectF bitmapRect = new RectF();
bitmapRect.right = imageView.getDrawable().getIntrinsicWidth();
bitmapRect.bottom = imageView.getDrawable().getIntrinsicHeight();

// Translate and scale the bitmapRect according to the imageview's scale-type, etc.
Matrix m = imageView.getImageMatrix();
m.mapRect(bitmapRect);

// Get the width of the image as shown on the screen:
int width = bitmapRect.width();

(请注意,我没有尝试编译上面的代码,但您会明白其中的要点:-))。上面的代码仅在 ImageView 完成其布局时才有效。

关于android - imageView.getWidth();返回屏幕而不是位图宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15069478/

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