Just to be clear, there are six required parameters to widget.newTabBar() that involve customizing the look. They are:
backgroundFile (required)
String. This is the background image of the TabBar.
tabSelectedLeftFile (required)
String. This is the left edge image of the TabBar’s selected graphic.
tabSelectedMiddleFile (required)
String. This is the middle image of the TabBar’s selected graphic.
tabSelectedRightFile (required)
String. This is the right edge image of the TabBar’s selected graphic.
tabSelectedFrameWidth, tabSelectedFrameHeight (required)
Numbers. This is the width/height of the TabBar’s selected graphic.
The first one is a graphic, usually 50px high and 320px wide if your content area is the typical 320x480. It can be whatever you want it to be. For many it’s a gradient filled bar.
@Icy Spark gave a real good description of tabSelectedLeftFile, tabSelectedMiddleFile, and tabSelectedRightFile. This is an overlay that will show the tab is highlighted. In one of my apps, each are 20x50 filled with the color {52, 52, 52} a dark gray but are at like 50% opacity. Here is a sample code block from my app:
mydata.tabBar = widget.newTabBar { top = display.contentHeight - 50, left = 0, backgroundFile = "images/tabBarBg.png", tabSelectedLeftFile = "images/tabBar\_tabSelectedLeft.png", tabSelectedMiddleFile = "images/tabBar\_tabSelectedMiddle.png", tabSelectedRightFile = "images/tabBar\_tabSelectedRight.png", tabSelectedFrameWidth = 20, tabSelectedFrameHeight = 50, buttons = mydata.tabButtons }