0

我想有效地加载位图,因为我经常在 4.0+ android 上得到OutOfMemoryError. 所以我尝试使用来自 android 开发者页面资源“有效加载位图”的示例代码。

但是我的问题是获取 ImageView 的高度和宽度,因为没有任何常量值来定义尺寸。

开发人员页面中包含必填字段的代码。

public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
        int reqWidth, int reqHeight)

这是我的布局:

<RelativeLayout android:layout_width="match_parent"
                android:layout_weight="3"
                android:layout_height="0px">

   <ImageView
    android:id="@+id/img1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scaleType="fitStart"
    android:src="@drawable/image" />

我尝试使用image.getHeight(),但没有奏效。

4

2 回答 2

0

这是因为 'image' 不是 ImageView 对象。以下是如何在您的情况下以编程方式声明 ImageView :

`ImageView 图像 = (ImageView) findViewById(R.id.img1);

此外,这可能会对您有所帮助:如何检索视图的尺寸?

于 2013-03-19T22:20:29.573 回答
0

您可以使用 ViewTreeObserver 并等待其中一个回调,然后获取 ImageView 的大小。

在此处查看更多信息: 我何时可以首先测量视图?

于 2013-03-19T22:22:32.417 回答