I'm currently using this function and it looks pretty good:
void drawBattery() {
uint8_t percentage = 100;
float adcVoltage = analogRead(A0) / 1024.0;
// This values where empirically collected
float batteryVoltage = adcVoltage * 4.945945946 -0.3957657658;
if (batteryVoltage > 4.2) percentage = 100;
else if (batteryVoltage < 3.3) percentage = 0;
else percentage = (batteryVoltage - 3.3) * 100 / (4.2 - 3.3);
gfx.setColor(MINI_BLACK);
gfx.setFont(ArialMT_Plain_10);
gfx.setTextAlignment(TEXT_ALIGN_RIGHT);
gfx.drawString(SCREEN_WIDTH - 22, -1, String(batteryVoltage, 2) + "V " + String(percentage) + "%");
gfx.drawRect(SCREEN_WIDTH - 22, 0, 19, 10);
gfx.fillRect(SCREEN_WIDTH - 2, 2, 2, 6);
gfx.fillRect(SCREEN_WIDTH - 20, 2, 16 * percentage / 100, 6);
}