我想在实例化之前设置我的位图的布局大小,以便可以实例化它(如果没有,则其布局高度和宽度为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类(及其后代)对象的方法。

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

关于android - 未为类型Bitmap定义方法setLayoutParams(LinearLayout.LayoutParams),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32611704/

10-11 22:34