ギザギザしてるなーとおもったら
こうじゃなくて
canvas.drawBitmap(bitmap, matrix, background);
こう
//現在のセーブカウントを保持(カウント=0)
int count = canvas.getSaveCount();
//セーブ(カウント=1)
canvas.save();
//ResourceからBitmapを生成
Bitmap bitmap = BitmapFactory.decodeResource(getResource(),R.drawable.icon);
//BitmapからBitmapDrawableを生成
BitmapDrawable drawable = new BitmapDrawable(bitmap);
//drawableの描画領域設定(必須)
drawable.setBounds(0,0,drawable.getBitmap().getWidth(),drawable.getBitmap().getHeight());
//bitmapを移動、回転、拡大縮小したい場合はその情報を持ったMatrixをわたす
canvas.concat(matrix);
//canvasに描画
drawable.draw(canvas);
//リストアする(カウント=0の状態に戻す)
canvas.restoreToCount(count);
ネタ元