Tasker app can do this without root.
Install Tasker. Setup a Task named Capture Screenshot and add the following actions:
Display xe2x86x92 Status bar xe2x86x92 Set: Collapsed.
Task xe2x86x92 Wait xe2x86x92 MS: 500
Display xe2x86x92 Take Screenshot xe2x86x92 File:
%DATE-%TIMES xe2x86x92 tick Insert in Gallery.
Optional: since Tasker doesn't visibly show whether it took a screenshot or not, you can configure your task to show a toast or a notification that screenshot has been taken. Both toast and notification can be added from Alert section.
Set an icon for the task.
For the ease of use I suggest you attach this task to a quick setting tile. Tasker offers three tiles. You can access them and add them into your enabled tiles through the quick settings editor (the pencil icon in your quick settings) and drag the 'unset' named tile to visible tiles.
After that, go into Tasker, click three dots lines, select Action and under Quick Settings Tasks replace the entry named unset with the name of the task you just created. Make sure you change it only for the entry you dragged into visible tiles.
From now on, whenever you would tap that quick setting tile, it would collapse the notification bar, wait for 500ms, than capture a screenshot.
In practice, Tasker responsded with an automatic delay of at least 3 seconds when tapping the tile. I have no solution for this delay though.