キャンバスに画像を描画しようとしています。プログラムは正常にコンパイルされ、期待どおりに動作しますが、エラー ログには、以下の drawBitmap() メソッドに関連付けられた NullPointerException があることが示されています。奇妙なのは、私のイメージがまだキャンバスに描かれていることです。正確には何が問題で、どのように解決すればよいですか?
私のコード:
public class ProgressBar extends View
{
String packageName;
public ProgressBar(Context context)
{
super(context);
packageName = context.getPackageName();
}
public ProgressBar(Context context, AttributeSet attribs)
{
super(context, attribs);
packageName = context.getPackageName();
}
@Override
protected void onDraw(Canvas canvas)
{
super.onDraw(canvas);
int resourceId = getResources().getIdentifier("bar1", "drawable", packageName);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId);
canvas.drawBitmap(bitmap, 35, 35, null);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
// super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mWidth = View.MeasureSpec.getSize(widthMeasureSpec);
mHeight = View.MeasureSpec.getSize(heightMeasureSpec);
setMeasuredDimension(mWidth, mHeight);
}
}
エラーログ:
java.lang.NullPointerException
at android.graphics.Canvas.throwIfRecycled(Canvas.java:1057)
at android.graphics.Canvas.drawBitmap(Canvas.java:1097)
at com.myapp.ProgressBar.onDraw(ProgressBar.java:50)
at android.view.View.draw(View.java:13944)
at android.view.View.draw(View.java:13825)
at android.view.ViewGroup.drawChild(ViewGroup.java:3083)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2920)
at android.view.View.draw(View.java:13823)
at android.view.ViewGroup.drawChild(ViewGroup.java:3083)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2920)
at android.view.View.draw(View.java:13823)
at android.view.ViewGroup.drawChild(ViewGroup.java:3083)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2920)
at android.view.View.draw(View.java:13823)
at android.view.ViewGroup.drawChild(ViewGroup.java:3083)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2920)
at android.view.View.draw(View.java:13947)
at android.view.View.draw(View.java:13825)
at android.view.ViewGroup.drawChild(ViewGroup.java:3083)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2920)
at android.view.View.draw(View.java:13947)