日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Android進階:打jar包獲取assets中的資源 解決s

系統 2287 0

大家都知道Android項目中的res目錄中的資源eclipse插件會在gen中自動生成相應的id應用,這樣就統一了資源管理


那么這種自動生成的id就是寫死的東西了 這就導致了不容易做修改


項目中需要將現有的組件打成jar包 這樣打包后類文件當然是肯定沒問題 但是資源文件就不行了。這個地方的id不能在新建的項目中被應用了


所以資源文件不能被打到res目錄中,這種情況下就必須要打到assets目錄中


這樣就會出現問題了 一般情況下我們應用資源文件是通過int型的id來引用的, 這里就不能直接應用了 我們需要手動讀取Assert目錄下的資源


Android提供了AssetManager來管理資源

讀取就很簡單了只需要 在Acitivity中

Context.getAssets().open(“sample.png”)

可以直接獲取相應的Inpustream 根據需要可以通過包裝來獲得需要的流 來解析一些XML TXT等文件

獲得Bitmap : BitmapFactory.decodeStream(mapActivity.getAssets().open("btn_zoomout.png"))

獲得Drawable: new BitmapDrawable(BitmapFactory.decodeStream(mapActivity.getAssets().open("btn_zoomout.png")))

一般我們用到Button的時候會使用selector來得到一些點擊(pressed)、焦點(focused)的一些效果,但當把selector的XML文件放到Assert文件中后 我試了N種的方法包括反射都用上了。發現都是解析不了 看源碼也沒找到具體什么原因 始終找不到為什么StateListDrawable 不能解析出來,


實在沒辦法了。。但問題還是得解決啊。 換了個思路


既然XML類型的StateListDrawable解析不了 我可以手動創建一個StateListDrawable對象啊,這個真是簡單啊

白白花了那么多時間去看源碼試方法鉆牛角尖,換了個角度才豁然開朗,

這樣就實現功能了,還有就是要注意最后要關閉流 這個最好是統一管理起來,


Android進階:打jar包獲取assets中的資源 解決selector XML文件不能解析的問題

上面是打jar包時的文件目錄 需要選擇java代碼 然后和assets目錄 像gen和res就不要打到包里了,當然manifest這些文件也不能打包

Android進階:打jar包獲取assets中的資源 解決selector XML文件不能解析的問題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 乃东县| 吉安县| 上思县| 长子县| 宁津县| 镇宁| 吴江市| 信宜市| 兴山县| 安泽县| 固阳县| 剑河县| 柘城县| 张家川| 凤凰县| 盐城市| 西峡县| 大邑县| 定襄县| 泰顺县| 镇远县| 马边| 正蓝旗| 和林格尔县| 昭平县| 盐津县| 中阳县| 曲麻莱县| 隆林| 扎囊县| 年辖:市辖区| 蓝山县| 孝感市| 调兵山市| 桦甸市| 安龙县| 英山县| 新和县| 绥宁县| 汪清县| 中江县|