Android Quick Tips #9 — How to Add Padding to Actionbar Menu Icons

原文by Norman Peitek 翻譯by Dexter0218

如何添加Actionbar菜單圖標(biāo)的邊距

在上篇文章中,我們看了一個(gè)只有一個(gè)菜單項(xiàng)的簡單的Actionbar:

a simple actionbar
a simple 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: 4dp Padding
Menu Item: 4dp Padding

Menu Item: 8dp Padding

Menu Item: 8dp Padding
Menu Item: 8dp Padding

這個(gè)方法會(huì)允許你為你的Actionbar菜單圖標(biāo)添加邊距,而不需要?jiǎng)訄D標(biāo)資源!

我們希望這對(duì)你有用!如果你有其他tips分享,歡迎在下面的評(píng)論里留言~!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容