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

时间:2015-09-16 14:37:52

标签: android bitmap layoutparams

我想在实例化之前设置我的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上甚至在谷歌上都没有发现它(使用“”因为没有它们我没有得到任何有用的东西)。

感谢任何帮助,谢谢你。

1 个答案:

答案 0 :(得分:1)

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

您应该通过调用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); 
}