【Android設計那些事兒】9-patch的應用

來源:互聯網
上載者:User

在之前一篇博文中,談到了設計Android應用時會遇到裝置尺寸、解析度及軟體版本片段化的問題,並介紹了通過製作多套資源(ldpi、mdpi、hdpi、xhdpi)和布局的辦法來克服。今天我們來聊聊9-patch,它也是用來協助我們解決此問題的。

 

我們先通過一張圖來瞭解一下9-patch的作用。的那種氣泡框在地圖類應用中很常見,左圖的氣泡框裡只有兩個漢字,右圖有八個漢字,這兩個氣泡框都有四個圓角,下邊還有一個尖角,右邊那個氣泡框是由左邊那個展開出來的。

 

    Android是如何進行展開的呢?如果是直接展開,那麼圓角和尖角都會被展開,那樣的話看上去就不太美觀。在這裡就需要應用9-patch來控制展開地區了。9-patch可以對氣泡框除尖角和圓角之外的地區進行展開,左右展開一致的長度,並且可以控制氣泡框內文字出現的地區。

 

9-patch其實是一種比較特殊的png格式的圖片,通過在圖片的上邊和右邊畫一個像素寬的黑線來標示可展開地區(這條邊線上的其他像素用白色或透明色)。如果還需要標示文字在圖片中的顯示地區,那麼就在圖片的左邊和下邊畫一個像素的黑線。見。



一個9-patch可以指定多個可展開地區,將製作好的9-patch檔案正確命名後放到特定的檔案夾下就可以生效了。Android內部的繪製機制會按照9-patch圖片中的標示根據不同情況進行合理地展開。

 

          9-patch可以應用到很多地方,比如應用的背景,使用9-patch的話只要畫一個像素即可,這樣可以減小圖片資源的大小。還有就是在做按鈕或文字框時,如果需要根據螢幕的解析度自動展開(如在800×480解析度的手機上啟動並執行應用,在854×480上可能就要對其中一些圖片進行展開了),使用9-patch會非常的方便。甚至有些簡單的圖也可以做成9-patch檔案,比如“+”。應用在設計的時候應盡量使用9-patch,不僅可以減少應用的大小,增強應用的適配能力,提高應用的效能,還能在一定程度上減少製圖的工作量。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.