android:clipToPadding 和 android:clipChildren
In 未分類 on 2014年10月14日 by TAT.zhipingfeng view: 26,763
6
相信 volley 絕大部分做 android 的人已經知道了,關于 volley 的使用網上也是一抓一大把,都是說 volley 如何如何好用,下面分享下自己在使用 volley 過程中踩過的坑。
volley 好用的一個原因是封裝的 api 看起來也比較直接,但是其回調的 api 做的是一般般,其中有一個 JsonObjectRequest 類,網上的使用說明也一大把,基本上都是最簡單的情形:
Get 請求示例:
1 2 3 4 5 |
在開發sdk生成jar在eclipse里相對比較容易操作,只要導出class時指定哪里導出就可以, 但在用AndroidStudio開發時要導出jar就沒那么容易,需要寫gradle腳本,但gradle腳本 的入門成本還是比較高,網上也有打包jar的腳本參考,但大多是通過生成classes.jar重命名 來生成,這樣生成的jar是包含工程里所有類的,有時我們需要指定一些包和類來生成jar。 下面是參考腳本: |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
task clearJar(type: Delete) { delete 'libs/sdk.jar' } task makeJar(type:org.gradle.api.tasks.bundling.Jar) { //指定生成的jar名 baseName 'sdk' //從哪里打包class文件 from('build/intermediates/classes/debug/org/cmdmac/cloud/pluginsdk/') //打包到jar后的目錄結構 into('org/cmdmac/cloud/pluginsdk/') //去掉不需要打包的目錄和文件 exclude('test/', 'BuildConfig.class', 'R.class') //去掉R$開頭的文件 exclude{ it.name.startsWith('R$');} } makeJar.dependsOn(clearJar, build) |
1 |
在build.gradle寫上后,只要在命令行執行gradle makeJar就可以在build/libs目錄下找到這個jar |
上面是個簡單的例子,只能打包某個包下面的所有文件,如果要實現只打某個包下面的某些子包或者文件可參考如下示例:
1 2 3 4 5 6 7 8 9 10 11 |
task makeSdkJar(type:org.gradle.api.tasks.bundling.Jar) { baseName 'pluginsdk' //只打包org.cmdmac下的org.cmdmac.pluginsdk.impl和org.cmdmac.gamecenter,其他子包不會被打包進去 from('build/intermediates/classes/debug/org/cmdmac/') { include 'pluginsdk/impl' include 'gamecenter' } into('org/cmdmac/') // exclude('R.class') // exclude{ it.name.startsWith('R$');} } |
假設我們要做一個效果,界面最頂部是一個 ActionBar 并且是半透明的,ActionBar 下面是一個 ListView,在初始狀態下,ListView 是 top 是在 ActionBar 的 bottom 位置的,但當 ListView 滾動的時候可以透過 ActionBar 看到下面的 ListView 的內容。如下面兩張圖所示:
關于插件,已經在各大平臺上出現過很多,eclipse 插件、chrome 插件、3dmax 插件,所有這些插件大概都為了在一個主程序中實現比較通用的功能,把業務相關或者讓可以讓用戶自定義擴展的功能不附加在主程序中,主程序可在運行時安裝和卸載。
在 android 如何實現插件也已經被廣泛傳播,實現的原理都是實現一套插件接口,把插件實現編成 apk 或者 dex,然后在運行時使用 DexClassLoader 動態加載進來,這里分享一下 DexClassLoader 加載原理和分析在實現插件時不同操作造成錯誤的原因。
Copyright © 2011-2021 AlloyTeam. All Rights Reserved. Powered By WordPress
粵ICP備15071938號-2