原文by Norman Peitek 翻譯by Dexter0218
如何添加Actionbar菜單圖標(biāo)的邊距
在上篇文章中,我們看了一個(gè)只有一個(gè)菜單項(xiàng)的簡單的Actionbar:

我們在菜單資源文件中設(shè)置菜單項(xiàng)圖標(biāo):
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_delete"
android:icon="@android:drawable/ic_delete"
android:title="Delete"
app:showAsAction="ifRoom"/>
</menu>
然而,我們假設(shè)我們的設(shè)計(jì)師并不知道這個(gè)圖標(biāo)應(yīng)該設(shè)計(jì)多大。他希望它更小。讓然,你可能再次需要這個(gè)drawable,只是一個(gè)更小的分辨率的才能解決問題。技術(shù)上它可以獲得你想要的結(jié)果,但我們不推薦使用此方法。很難去預(yù)測它在不同的設(shè)備上會(huì)變成什么樣子,并且很容易讓這個(gè)圖標(biāo)看到像素點(diǎn)。
更好的方法是使用一個(gè)高分辨率的圖標(biāo),但為它添加padding。不幸地,Android并不直接支持在菜單項(xiàng)里聲明。
你需要的是創(chuàng)建一個(gè)新的XML drawable,例如/drawable/delete_with_padding.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<bitmap android:src="@android:drawable/ic_delete"/>
</item>
</layer-list>
這個(gè)XML drawable會(huì)有四個(gè)邊距項(xiàng),每個(gè)代表一個(gè)方向。最后我們使用原來的菜單項(xiàng)聲明位圖中使用的圖標(biāo)。顯然,如果你需要,你可以調(diào)整4dp的邊距值。最后一步是使用這個(gè)新的/drawable/delete_with_padding.xml作為你的Actionbar菜單項(xiàng)圖標(biāo):
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item
android:id="@+id/action_delete"
android:icon="@drawable/delete_with_padding"
android:title="Delete"
app:showAsAction="ifRoom"/>
</menu>
Menu Item: 4dp Padding

Menu Item: 8dp Padding

這個(gè)方法會(huì)允許你為你的Actionbar菜單圖標(biāo)添加邊距,而不需要?jiǎng)訄D標(biāo)資源!
我們希望這對(duì)你有用!如果你有其他tips分享,歡迎在下面的評(píng)論里留言~!