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