Android 將Activity打成jar包 供第三方使用 徹底解決XML 圖片 文字資源不可悲打入到jar包的問題!

來源:互聯網
上載者:User

標籤:android   activity打包供第三方使用   

做項目需要將程式打包成jar檔案供第三方使用項目要求(將圖片文字資源寫到到jar包中,第三方調用時,僅需要在AndroidManifest.xml配置下相應的Activity通過StartActivity方式拉起Activity):在網上找了好久,並依靠查看Android源碼最終解決了問題

一:需要明白知識:

1.APK中的Res目錄無法通過Eclipse的Export方式匯入到jar包中而Assert可以

2.Android程式在編譯成APK時需要通過aapt將Res目錄下的資源產生對應的Id而Assert目錄下的資源不會在R檔案中產生Id

對XML資源學習:

1.AssetManager中提供XmlResourceParseropenXmlResourceParser(String fileName)這個方法可以講編譯後的XML檔案產生一個資源遍曆對象通過該對象可以擷取一個整個布局的View樹

2.通過 setContentView(view)可以設定在Oncrea方法中設定Activity的布局

對圖片資源學習:

1.將非.9圖片放入到Assert目錄下通過擷取檔案資源去產生Drawable對象 Button等其他空間的點擊效果可以通過StateListDrawable來實現

2.對.9圖片進行處理讓需要先編譯去除掉上下左右的黑色的展開地區顯示地區的標記使用方法與非.9圖一致

對字元學習

1將字元寫在Java檔案中,寫到一個靜態Map中,通過kay_value可以再全域都擷取到

 

二:具體操作過程:

1.先使用普通的方式在XML檔案中設定你的布局並在運行Activity查看介面效果

2.刪除你在XML檔案中設定的圖片,字型資源的屬性,因為Res目錄無法匯入到Jar包中,無法在R檔案中產生對應資源的Id,所以通過android:src="@drawable/uac_logo"此類方式設定的圖片資源均不會被找到,在第三方擷取編譯後的XMLlayou檔案時會拋出資源沒有被照到的異常

2.取出bin目錄下已經編譯好的APK檔案,解壓縮取出編譯好的XML檔案圖片資源放入到Assert目錄下

3.在Activity的onCreat方法中使用XmlResourceParseropenXmlResourceParser(String fileName)方式擷取Layout檔案通過setContentView(view)設定為整個Activity的布局  使用其中的控制項(ButtonTextView等)時仍可以通過R.id.XX的方式擷取此時通過解析XML檔案,系統以及擷取到你這個XMl中各個控制項Id(此時的Id是否會與第三方資源Id衝突這個問題我覺得不會發生,畢竟findViewById()給出的定義是尋找該XML下的控制項的Id有哪位對這個畢竟清楚請教下?)

4.擷取到控制項之後,可以通過setTextsetBackground setImageDrawable等方法設定文字背景前景資源。

Android 將Activity打成jar包 供第三方使用 徹底解決XML 圖片 文字資源不可悲打入到jar包的問題!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.