解謎:為何用了9-Patch背景圖後自帶Padding屬性?

2020-12-26 紙鶴視界

本次分享的主題源於筆者在實際開發中遇到的問題。具體現象為:當普通的9-Patch圖用作TextView的backGround屬性後,整個TextView便有了一定的Padding值。但筆者並沒有給定padding屬性,甚至在預覽視圖中,也沒有展現出padding效果。但運行起來後,便莫名其妙地有了內邊距。 我們先來看布局代碼:

<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_gravity="center" android:background="@mipmap/background" android:text="@string/app_name" tools:context=".MainActivity"> </TextView>在Android Studio內的界面預覽如圖:

紅色邊框的圖片即背景,是經過9-Patch處理過的.9.png文件。 顯然,在預覽時是正常沒有內邊距的,接下來我們運行它。其效果如下圖所示:

可以看到,實際運行時,內邊距出現了。 經過一番問題排查,發現其根源在於.9.png文件,在Android Studio中打開這個圖片,發現它的縮放設定是這樣的:

可見,中央深粉色的部分就是自由拉伸的部分。定義它的,則是圖片四周的黑色線條。接著,我們勾選「Show content」,即預覽顯示內容區,如下圖所示:

可見,內容僅顯示在中央非空白區域,也就是我們最終看到的運行效果了。到此,問題的根源找到了,我們怎麼解決它呢?很簡單,在進行圖片拉伸定義時,我們應使用上和左邊緣進行劃線定義,而右和下邊緣則定義了內容可填充的區域。因此,做如下圖所示的修改:

分別仔細觀察上側和下側,左側和右側邊緣,可以看到上側和下側並非完全劃線,而是定義了拉伸的部分;而下側和右側則是完全劃線,限定了內容可填充區域。再次運行,可見內邊距已消失。

當然,還有一種解決辦法。即在xml布局文件中,將TextView的padding屬性值強制寫為0dp,內邊距則也會為0。但筆者更推薦使用前一種方法,因為強制為0的方法,在當確實需要有padding值的時候,往往會不太好處理。好了,以上就是本次分享給大家的開發小技巧,希望能夠對你有所幫助。

相關焦點

  • padding_css padding用法詳解
    padding 屬性是css用於在一個聲明中設置所有 padding 屬性的簡寫屬性。
  • 傳智播客詳解Css3九大常用屬性
    在Css3的學習和實際操作中,我們經常會接觸到一些常用屬性,比如字體、文本、列表和背景等。下面,傳智播客將對常用的Css3九大屬性進行詳解。4.傳智播客詳解Css3九大常用屬性—背景l background-color:顏色值; background-color:#ff0000; background-color:red;l background-image
  • 盒子模型有哪些屬性
    塊標籤:包含p、div、ul、ol、li、h1~h6等;塊標籤獨自佔據一行、自帶換行的效果;除了div以外,一般塊級標籤都會有內外邊距,寬度和高度。2、內聯標籤:不會佔據容器的一整行,它會和它周圍的內容在一起,在一行內自然的從左到右依次顯示,內容的多少決定了內聯標籤的寬度。
  • css3必須了解的知識 css中常見的樣式屬性和值
    css中常見的樣式屬性和值字體與顏色背景屬性文本屬性邊框屬性內外邊距滑鼠光標屬性列表樣式定位屬性浮動和清除浮動滾動條樣式顯示和隱藏字體與顏色font-family:微軟雅黑;/*字體名稱(類型):微軟雅黑,黑體,楷體,宋體*/font-size: 20px;/*字體大小*/font-weight: 600;/*字體加粗*/font-style: italic
  • 遊戲整點啥 || 《機械迷城》——一款自帶解謎攻略的經典解謎遊戲
    解謎遊戲千千萬,但玩完後基本都已經索然無味,能讓人慾罷不能,還想再玩一遍的解謎小遊戲,卻是極少數的。《機械迷城》這款結合了解謎和橫版冒險的小遊戲,無論畫面上,解謎上,還是劇情上都值得通過一遍後,再掏出來繼續回味,因為他有這個資格。《機械迷城》是由製作了《銀河歷險記》系列作品的獨立開發小組——Amanita Design開發的2D解謎冒險遊戲。
  • 48 margin屬性詳解
    同樣的,一些元素也具有默認的padding,所以我們一開始,就把所有的元素的margin和padding都設為0。但是通配符選擇器有效率問題(並不是所有的元素都有默認的margin和padding,只是一部分),所以我們使用併集選擇器,把經常要用到的元素設置一下就行了。關於一些元素具有默認的margin和padding,我在瀏覽器中演示一下。
  • 靖世九柱柱子位置解謎攻略[多圖]
    原神靖世九柱柱子位置解謎攻略靖世九柱任務地點:翠玦坡靖世九柱開啟方法:解鎖10級巖神瞳,獲取追敘之石,將追敘之石嵌入九個石柱中方可打開遺蹟大門。6、另外,第8根石柱(步驟三下方圖的第8根石柱)周圍有風場環繞,建議使用炎屬性角色哎背後的石頭上搭個臺子進去;
  • RPG、解謎、動作、劇情應有盡有!| 一周手遊預告
    上線日期:12月20日(iOS)、12月24日(安卓)遊戲類型:AVG標籤:現代、戀愛預約人數:21W測試服分數:9.7遊戲特色:1.優秀的視覺與聽覺體驗2.精彩的劇本設計溫暖人心3.基於現實世界的背景
  • 『背景圖』12.9日精選背景圖
    『背景圖』12.9日精選背景圖 設置我為星標/置頂- 愛你喲 熱門背景圖 長按保存 點擊放大 圖片較多,請在 W i f i下瀏覽 微信公眾號:草莓潮圖.....
  • 遊戲速遞:這5款解謎冒險遊戲簡直神作!
    首先,《極樂迪斯科》的藝術風格與主流RPG完全不同,並擁有極為詳細的設定和超過百萬字的文本量,這也是為何它被稱為「最難漢化的遊戲」的原因所在。 角色屬性和技能設計非常有趣,換裝Play也能帶來不同的屬性加成,每個選擇都會有不同的反饋,不同養成路線也會觸發不同的故事。
  • DNF:100級鬼劍士武器,只有光劍自帶屬性攻擊,其他職業怎麼辦?
    100級武器和現有的95武器相比,自然屬性更好,傷害更高,但不知為何,很多的100級武器卻有一個很尷尬的缺漏,那就是沒有「屬性攻擊」,雖然少了這個屬性不至於影響玩家太多的傷害,但總感覺呢有很大的不習慣。
  • Jklove為何自帶冠軍屬性?TES經歷爆料癖好:Uzi被碾壓
    Jklove為何自帶冠軍屬性?確實阿水看起來自帶冠軍屬性,因為他來TES之前,TES還是一支成績起伏很大的戰隊,對於之前的TES來說,目標可能只是進季後賽,想拿冠軍真的很難。但是阿水剛來兩個月,TES就進入了春季賽決賽,要不是最後TES犯了很大失誤,不然春季賽冠軍也是TES的。
  • 潮溼洞穴解謎攻略
    ali213SSO-online-avatar-username-link .ali213SSO-username {width: 65px;} .t1c{width:1180px;} .ns_t2{width:100%;height:96px;background:#1e222d;} .t2c{width:1180px;height:60px;margin:0 auto;padding-top
  • 如何添加標籤背景色及標籤背景圖?
    在大多數情況下,目前市面上除了一些產品標識服裝合格證等黑白標籤,其他大多數標籤、價籤都是帶有背景的。那麼標籤軟體對於商品標籤的背景色及背景圖是怎麼添加以及有什麼相關的功能呢?(填充色設置在添加矩形後右擊選擇屬性,在彈出屬性中的「填充類型」及「線條類型」,邊線的粗細及顏色都可設置)。直線的顏色及粗細設置同樣在屬性可看到「線條」設置項。(圖2)
  • 火影忍者手遊花燈解謎第21關攻略:花燈解謎二十一關通關步驟圖[多圖]
    火影忍者手遊花燈解謎第21關的通關方法是什麼?面對各種活動的關卡挑戰,第二十一關的難度還是有點高的,很多玩家在這一關總是過不去,經常會走錯,今天我們來討論花燈解謎第二十一關的通關走法,下面有詳細的步驟圖可以分享給大家參考。
  • TapTap評分9.9:藝術品級燒腦解謎《GNOG》是如何誕生的
    2014年,一款叫做《紀念碑谷》的手遊在全球範圍內獲得成功,而在2018年,同樣有一個非常優秀的解謎遊戲贏得了玩家絕大多數好評,據GameLook了解,由KO-OP研發、Double Fine發行的《GNOG》不僅Steam好評率92%以上,TapTap評分9.9,還曾拿到2016年IGF最佳音效獎、最佳視覺藝術提名以及2016年MIGF藝術指導獎等業內殊榮,目前登陸了iOS
  • 遊戲性法寶:解謎與策略玩法
    這個系列的開山祖師,是動漫界大名鼎鼎的GAINAX,也就是《新世紀福音戰士》《藍寶石之謎》的出品公司。這個系列中最有代表性,最受歡迎的,應該就是第二作《美少女夢工廠2》。很多玩家都會稱讚這一款作品的「遊戲性」非常高,因為這款「養成類」玩法為主的作品,加入了許許多多其他的元素,讓玩家體驗到非常豐富而且耐玩的過程。
  • DNF:自帶屬性攻擊職業匯總及相關分析
    四種屬性攻擊任選1.劍宗:劍宗通過魔劍降臨技能劍宗能在四種屬性攻擊光、火、暗、冰中任選一種2.魔皇:魔皇可以通過屬性變換技能能在四種屬性攻擊光、火、暗、冰中任選一種且魔幻本身技能就是部分全屬性、部分單屬性、部分隨屬性變化
  • 魔法陣7月9日正式發布 創意無限的冒險解謎遊戲
    (AVG)遊戲,這款遊戲有著令人著迷的背景故事,以及十分新穎的遊戲玩法,再搭配詭異的背景底圖,稱得上是創意之作。它由Question開發製作和發行,在2015年7月9日正式登錄Steam平臺,目前依然在火熱發售當中。
  • 《前端5分鐘》之使用純css實現網站換膚和焦點圖切換動畫
    你將收穫網站換膚設計方案介紹:target偽類介紹和用法以及如何使用css實現網站換膚transition動畫以及如何用純css實現焦點圖動畫效果展示1.網站換膚2.焦點圖動畫在HTML中, 標識符是元素的id或者name屬性,。由於這兩者位於相同的命名空間,因此,這個示例 URI 指向的是文檔頂層的 "home" 。