Bitmap 类型未定义方法 setLayoutParams(LinearLayout.LayoutParams)

The method setLayoutParams(LinearLayout.LayoutParams) is undefined for the type Bitmap

我想在实例化之前设置我的 Bitmap 的布局大小,以便它可以被实例化(如果没有,它的布局高度和宽度 = 0)。

我在我的自定义视图中使用这个简单的代码:

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30);
    mBitmap.setLayoutParams(layoutParams);
    mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
    mCanvas = new Canvas(mBitmap);
}

在线mBitmap.setLayoutParams(layoutParams);我收到错误

The method setLayoutParams(LinearLayout.LayoutParams) is undefined for the type Bitmap

在 SO 甚至 Google 上都没有发现任何相关信息(使用“”是因为没有它们我几乎没有任何用处)。

感谢任何帮助,提前致谢。

setlayoutParams 是 View class(及其后代)对象的一种方法。

您应该通过调用 setImageBitmap 将位图设置为一个视图(明确地说它是一个 ImageView)。您可以调用 setLayoutParams 到视图。

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);

    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30);
    // of course you should instantiate mImageView anywhere beforehand
    mImageView.setLayoutParams(layoutParams);

    mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
    mCanvas = new Canvas(mBitmap);

    // set mBitmap to mImageView
    mImageView.setImageBitmap(mBitmap); 
}