This isn't a perfect solution, but I was able to fix the vertical gaps by applying fake bold to the text. This means that Android adds some extra strokes to the letters and thus draws over the gaps.
On TextView
Typeface font = Typeface.createFromAsset(asset, "bitbold2.ttf");
TextView tw = (TextView) findViewById(R.id.header);
tw.setTypeface(font);
tw.setPaintFlags(Paint.FAKE_BOLD_TEXT_FLAG);
and on Canvas
Typeface font = Typeface.createFromAsset(asset, "bitbold2.ttf");
Paint paint = new Paint();
paint.setTypeface(font);
paint.setFakeBoldText(true);