1

カスタム ビューで 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 の xml エディターにあります。どうすればこれを修正できますか?

4

1 に答える 1

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);
        }

    }
}
于 2013-10-02T04:51:36.110 に答える