Oh, god. Mel Gibson's 1990 Hamlet was awful. It was the most asinine thing I've ever seen. Shakespeare for people who really *are* dummies. Reportedly it was director Franco Zeffirelli's attempt to make Shakespeare "less cerebral" and more accessible to the masses. What a choice to try that with! The whole point of Hamlet is that he's so damned smart the only person who can really stand in his way is him.
My point was that you've got to find an actor who can give a knowledgeable performance. Not some meat-head action star stunt cast miles out of his depth. I'd rather watch Arnold Schwarzenegger Hamlet.
I think the best film adaptation of Hamlet I've seen was Kenneth Branaugh's 1996 version, although it is long, long, long at 242 minutes (to Gibsons' 134 minutes). Olivier's 1948 Hamlet is generally highly regarded, but it's too sentimental for my taste. Haven't seen Derek Jacobi's 1980 BBC performance, but I've heard good things about it. I've seen snippets of the David Tennant Hamlet, and it looks promising, although it's hard to shake the impression that it's Dr. Who playing Hamlet.