1. 程式人生 > >關於AS製作點九圖時Aapt2Exception: AAPT2 error

關於AS製作點九圖時Aapt2Exception: AAPT2 error

環境:

Android Studio 3.0.1

背景:

專案需要使用一個可拉伸的圓角矩形,拿到設計製作的圖,自己動手打算製作成點九圖達到拉伸自適應內容的效果

案場還原:

現學現賣,無非就是把圖片放置在res/drawable目錄下,右鍵雙擊圖片選擇creat 9-patch file,然後進行四邊描黑線的工作,就像這樣
這裡寫圖片描述
嗯很好,一起都很順利,製作成功
但是
當年激動的打包編譯的時候就會發現
這裡寫圖片描述
嗯?好像在哪見過,沒錯,你升級AS的時候就遇見過這個問題

解決方式

  • 方案一

無非就是在專案的gradle.properties中加入
這裡寫圖片描述
但是如果這樣也不行,你可能也踩進了跟我一樣的坑

  • 方案二

    請確保你製作的點九圖繪製了四天邊的黑線,就像我的問題
    這裡寫圖片描述

重新編譯安裝,嗯如果沒毛病,恭喜你!
但是,於我來說。
又碰見這種情況
這裡寫圖片描述
點九圖不能自適應包裹內容,即使設定了wrap_content,絲毫不見效果。其實問題也很簡單(雖然我嘗試了N種方式饒了M條路)

真相只有一個,即使wrap_content是自適應控制元件的內容,內容包括background和text,就是因為點九圖過大,導致控制元件wrap_content了background,但是backgroud沒有包裹text。
好嘛,如果你僅僅是想製作我這種效果的點九圖,還有一種彎路可以繞。

使用shape,設定背景時設定成該shape


<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 圓角 -->
<corners
android:radius="5dp"/> //圓角自己調節
<stroke
android:color="@color/gray_d8d8d8"
android:width="@dimen/dimen_1"/>
<!-- 填充的顏色 -->
<solid
android:color="@color/white"/>
</shape>


效果展示
對於簡單的點九圖製作shape還是能管用,否則就找設計小姐姐重新制作點九圖吧