我想在自定义视图中创建scalebitmap,当我想在xml布局中添加时,xml会给出错误java.lang.NullPointerException
,并且想要在onSizeChangedFunction中更改某些行,包括我的init()中的scalebitmap ()。我的代码如下;
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
parentWidth=w;
parentHeight=h;
init(); // <--- This
mBitmap=Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mCanvas = new Canvas(mBitmap);
}
和我的init()函数:
private void init()
{
for(int i=0 ; i<2; i++)
{
int imageResources;
imageResources=getResources().getIdentifier("rakam"+i, "drawable", myContext.getPackageName());
Bitmap tempBitmap = BitmapFactory.decodeResource(myContext.getResources(), imageResources);
--> Bitmap scaledBitmap= Bitmap.createScaledBitmap(tempBitmap, parentWidth, parentHeight, false);
rakamlar.add(scaledBitmap);
}
}
错误不在Logcat中,而是在eclipse的xmleditör中。 怎么能解决这个问题?
答案 0 :(得分:0)
只是一个猜测,但我认为在eclipse下的“编辑”模式下,你可能有一些资源无法解决。为了让您超越即时错误,请尝试:
private void init()
{
for(int i=0 ; i<2; i++)
{
int imageResources;
// I suspect imageResources will be 0 while in edit mode..
imageResources=getResources().getIdentifier("rakam"+i, "drawable", myContext.getPackageName());
if(!isEditMode()) {
// Don't access the unavailable resources..
Bitmap tempBitmap = BitmapFactory.decodeResource(myContext.getResources(), imageResources);
Bitmap scaledBitmap= Bitmap.createScaledBitmap(tempBitmap, parentWidth, parentHeight, false);
rakamlar.add(scaledBitmap);
}
}
}