Android Studio 下對資源進行分包
也許你曾經用過這個插件來對資源文件 layout 進行分類https://github.com/dmytrodanylyk/folding-plugin,但如今隨着 AS 版本的升高,該插件已經不再支持。
now,我來分享一種比這個插件更加優秀合理地對資源進行分包,讓你的資源文件看起來簡明有序。
先上效果圖,如下所示:
[效果圖]
從圖中可以看出新增了 res_core 和 res_sub 兩個資源包,這樣我們可以對每個模塊的資源都進行具體分類,是不是心動了,趕緊照着如下配置試一試吧,別再讓資源文件們“混為一潭”了。
方法很簡單,配置我們的app文件夾下的 build.gradle 文件,比如我的
android { ... sourceSets { main { res.srcDirs('src/main/res', 'src/main/res_core', 'src/main/res_sub') } } }
配置完之后,sync project 一下就成功了。
補充:發現有小伙伴試驗不成功,好伐,是我疏漏了,文件夾是要自己創建的,因為自己創建的文件夾 gradle 不能解析為資源文件來使用,所以需要在 build.gradle 中進行配置,這樣你們就懂了吧。
如果還有問題,可以參照AndroidUtilCode的使用
原文鏈接:https://blankj.com/2016/09/21/android-studio-classify-src-package/
【Android Studio】分類整理res/Layouts中的布局文件(創建子目錄)
u011156012 2016-01-24 20:49:15 23227 收藏 3
分類專欄: Android開發 文章標簽: AndroidStudio
版權
好吧,這個功能需求也是因為作為一個重度強迫症患者,非常想要把layouts中的文件分類整理下。否則看到一堆Activity和Fragment等文件混在一起特別難受。更重要的原因是,如果你的工程交給別人維護,別人看到一堆布局文件壓根不知道從哪里下手。又是經過一番折騰,總算把布局整理成這樣了:
說到布局文件的整理,一般有兩種:
-
按照文件類型:基本上分為Activity、Fragment和views等
-
按照頁面類型:你的工程有幾個大的頁面,每個頁面下面又有多少個子頁面,可以按照這種模塊的方式分類整理下。
當然我就是采用第二種方式。
說點題外話,我最開始的時候在StackOverFlow上面搜到了兩種方法,一種方法是用一個plugin:
但是這種方法經過實際認證,好像在1.3版本之后的AS就不能用了。下圖就是我安裝的版本,看到安裝了之后,左側的導航欄中根本沒有other setting的入口。
我還專門去問了這個插件的開發者,告訴他我的1.4.1版本的AS沒有效果,然后作者給我推薦了另外一種方法,可能稍微麻煩一點,但是確實有效。其實也是在StackoverFlow中贊同數比較高的回答。下面我們就詳細一步一步來吧:
-
先說一個大前提,這種方法必須要你的AS設置成project模式,而不是Android模式
-
把你的整個Layouts文件夾拷貝出來做一個備份(備份永遠是我們在做嘗試之前最重要的一件事情。我一般習慣把整個工程也備份一下)
-
整個刪除你的Layouts文件夾(確保你至少做了第1步的文件夾備份)
-
右鍵你的res文件夾,然后New --> directory
-
命名為Layouts(其實你也可以起成另外的名字,無關緊要了)
-
右鍵你剛建好的Layouts文件夾,New --> directory(這里面就要建我們說的第1層目錄了,按照我的習慣,這一層的文件夾就是我們的工程的幾大模塊的分類了。當然你也可以按照Activity和Fragment來命名)
這里插一下,我當時直接在AS中操作的話,是會出現新建的目錄是Layouts.mainpage.layout的格式,而不是用樹形結構一層層打開的,后來我就直接在電腦的文件系統中手動新建文件夾,目的是一樣的
-
在你第5步新建好的文件夾中繼續新建一個文件夾,命名為layout。 這一步驟非常重要!這一步驟非常重要!這一步驟非常重要!
-
從第1步備份的文件中把相應的文件拷貝到這個layout文件夾中
-
重復第5到第7步,把所有的布局文件分類存放好。
-
打開build.gradle文件(注意這里會有兩個build.grade文件,我們要改變的是工程里面的那個),然后添加進去下面的代碼:
sourceSets {
main {
res.srcDirs =
[
'src/main/res/layouts/mainpage',
'src/main/res/layouts/investment',
'src/main/res/layouts/productlist',
'src/main/res/layouts/myaccount',
'src/main/res/layouts/setting',
'src/main/res/layouts',
'src/main/res'
]
}
}
添加后的build.gradle文件類似這個樣子
需要特別注意的是:代碼中一定要把 src/main/res/layouts 和 src/main/res 兩行代碼寫在最后面!!!
- 重啟一下AS應該就ok了~
————————————————
版權聲明:本文為CSDN博主「u011156012」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u011156012/java/article/details/50575117
今天來聊聊關於將Android應用程序的布局文件的存放,因為開發過程中發現有時候在同一個文件夾中存放了太多布局文件會造成很多麻煩。如果你的項目有超過30個布局,想要查找一個布局文件會讓很頭疼。這個問題的解決方案就是將它們分散在不同的文件夾中,gradle給我們提供了這項便利,可以將布局文件夾映射到多個文件夾當中,比如分成“activity layouts”, “fragment layouts”, “adapter layouts”等文件夾的方式。這樣就可以在不同的文件夾中存放我們的布局文件了,編譯也不會出問題。
如下圖為范例:
要如此分目錄需要做一些工作:
在res目錄中創建一個名為“layouts”的目錄(Directory)
在layouts文件夾下創建名為activity的資源文件夾, (要創建一個資源文件夾 Resource folder 你必須選擇“New -> Folder -> Res Folder”, 然后要寫對目錄路徑“src/main/res/layouts/activity”);
在文件夾activity中創建目錄並命名為“layout ”;
為fragment 和adapter 文件夾做以上1~3同樣的操作;
將布局文件分門別類放進新的文件夾中.
最后一步不要忘了要修改我們的build.gradle文件,修改一下內容:
[java] view plaincopy
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
...
}
buildTypes {
...
}
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'apt_generated']
aidl.srcDirs = ['src/main.aidl', 'apt_generated']
assets.srcDirs = ['src/main/assets']
res.srcDirs =
[
'src/main/res/layouts/activity',
'src/main/res/layouts/fragment',
'src/main/res/layouts/dialog',
'src/main/res/layouts/adapter',
'src/main/res'
]
}
}
}
編譯后所有鏈接的目錄都是正常的.
不幸的是,這種解決方式僅僅只在Project透視圖當中有效。
翻譯來源:http://alexzh.com/tutorials/how-to-store-layouts-in-different-folders-in-android-project/