非典型的NinePatch使用模式

2021-09-12 04:42:36 字數 991 閱讀 6629

android程式設計師對ninepatc**件一定很熟悉,因為它的應用實在是太廣泛了,當影象需要拉伸或收縮時,一定會首先考慮到它,而由於android裝置那五花八門的解析度,影象的拉伸收縮幾乎是不可避免的....

google已經為我們安排好了乙個簡單有效的ninepatch使用模式:

[list]

[*]建立影象檔案

[*]使用sdk/tools/draw9patch工具,選擇影象的拉伸收縮區域,以及內容顯示區域(可選)

[*]將draw9patch生成的*.9.png檔案複製到res/drawable目錄中

[*]在ui檔案或者程式**中,直接使用檔案對應的drawable

[/list]

那就要我們自己建立新的應用模式了:

[list]

[*](同上)建立影象檔案

[*](同上)使用sdk/tools/draw9patch工具,選擇影象的拉伸收縮區域,以及內容顯示區域(可選)

[*]將draw9patch生成的*.9.png編譯為android特有的格式(還是可正常顯示的png檔案,但是將draw9patch中生成的上下左右4條邊裁掉了,相關資訊生成chunk資料嵌入png檔案中)

[*]使用bitmapfactory載入編譯後的ninepatch影象檔案,獲得bitmap物件bmp

[*]確認bitmap是合法的ninepatc**件:ninepatch.isninepatchchunk(bmp.getninepatchchunk())

[*]生成ninepatchdrawable物件:new ninepatchdrawable(getresources(), bmp, chunk, new rect(), null);

[/list]

另外,如果影象定義了內容顯示區(ninepatch影象的右下黑邊),我們需要從chunk資料中解出其上下左右的padding資料,上面的步驟6需要修改一下才能在ninepatchdrawable中獲得正確的padding rect,具體**可參考這裡:[url]

非典型的 典型面試評測

一 面試交談 考察應聘者的任職資格和工作適應性 要素 觀 察 內 容 測 評 參 考 回 答 要 點 必問題 了解應聘者的基本情況 你是怎麼知道我公司招聘的?你目前的待遇是多少?期望本公司提供的待遇是多少?你換工作的原因是什麼?以前公司的工作頻率如何?經常需要加班嗎?多長時間出一次差?這種出差頻率影...

C 多型的幾種非典型場景

多型的幾種情形 在非建構函式,非析構函式的成員函式中呼叫虛函式,是多型 class base virtual void func2 class derived public base intmain 輸出結果 derived func2 derived func2分析 上述使用指標和引用的方式實現多...

雅虎 外企折戟中國的非典型故事

有人曾發現,中國的網際網路公司,從門戶 到社交 再到 幾乎都是由模仿外國網際網路公司而來,但當這些鼻祖們進入中國市場,總是節節敗退。在眾多外企網際網路公司進軍中國的故事中,雅虎或許是那個最不典型的。雅虎入華甚早,一開始就推行本土化團隊,從收購中國創業公司,牽手中國重量級玩家,甚至一度將 雅虎中國 改...