Labeled simply as "the best way to enjoy your movies", MX Player for Android is probably familiar to a lot of Android users by now. It's one of those rare apps that get most everything right.
A minimalist interface that never gets in the way? Check. Multi-core decoding, MKV container audio, pinch-to-zoom, zoom-and-pan finger gymnastics? Yep. Oh, did we mention automatic subtitle matching and subtitle gestures? Put your finger on the screen and swipe upwards, downwards, or to the sides to move text around or get to the previous/next piece of dialogue.
Formats? This bad boy comes with codec support for 3gp, avi, divx, f4v, flv, mkv, mp4, mpeg, mov, vob, wmv, webm, xvid, and many more, basically whatever you throw at it. You can even select which decoder should handle which file type by yourself. Subtitle and audio formats are a plenty too - whatever you got, MX plays it.
Other cool perks are the Background play feature that lets video files (or just their audio) run in the background while you work with other apps. With the latest MX Player update, however, the developers outdid themselves by introducing a picture-in-picture (PiP) functionality.
Watch your local videos while browsing or doing something else, as long as you have Android 8+ on your phone (support for older versions, as well as Chromecast PiP is coming soon). The best part? The picture-in-picture functionality also works on the free version of MX Player, just hit the arrow next to the loop button, and the PiP icon is self-evident.