1. 程式人生 > >android專案裡面檔案,資料夾作用介紹res

android專案裡面檔案,資料夾作用介紹res

Android專案資料夾裡面,主要的資原始檔是放在res資料夾裡面的

1:assets資料夾是存放不進行編譯加工的原生檔案,即該資料夾裡面的檔案不會像xml,java檔案被預編譯,可以存放一些圖片,html,js, css等檔案。
2:res資料夾裡面的多個資料夾的各自介紹

res/anim/ XML檔案,它們被編譯進逐幀動畫(frame by frame animation)或補間動畫(tweened animation)物件 res/drawable/ .png、.9.png、.jpg檔案,它們被編譯進以下的Drawable資源子型別中, 要獲得這種型別的一個資源,可以使用Resource.getDrawable(id) ;為了獲取資源型別,使用mContext.getResources().getDrawable(R.drawable.imageId) 注意:放在這裡的影象資源可能會被aapt工具自動地進行無失真壓縮優化。比如,一個真彩色但並不需要256色的PNG可能會被轉換為一個帶調色盤的8位PNG。這使得同等質量的圖片佔用更少的資源。所以我們得意識到這些放在該目錄下的二進位制影象在生成時可能會發生變化。如果你想讀取一個影象位流並轉換成一個位圖(bitmap),請把影象檔案放在res/raw/目錄下,這樣可以避免被自動優化。

res/layout/ 被編譯為屏幕布局(或螢幕的一部分)的XML檔案


res/values/ 可以被編譯成很多種型別的資源的XML檔案。注意: 不像其他的res/資料夾,它可以儲存任意數量的檔案,這些檔案儲存了要建立資源的描述,而不是資源本身。XML元素型別控制這些資源應該放在R類的什麼地方。 儘管這個資料夾裡的檔案可以任意命名,不過下面使一些比較典型的檔案(檔案命名的慣例是將元素型別包含在該名稱之中):

array.xml 定義陣列

colors.xml 定義color drawable和顏色的字串值(color string values)

使用Resource.getDrawable()和Resources.getColor()分別獲得這些資源。

dimens.xml定義尺寸值(dimension value)。

使用Resources.getDimension()獲得這些資源。

strings.xml定義字串(string)值

使用Resources.getString()或者Resources.getText()獲取這些資源。

styles.xml 定義樣式(style)物件

res/xml/ 任意的XML檔案
,在執行時可以通過呼叫Resources.getXML()讀取。

res/raw/ 直接複製到裝置中的任意檔案。它們無需編譯,新增到你的應用程式編譯產生的壓縮檔案中。要使用這些資源,可以呼叫Resources.openRawResource(),引數是資源的ID,即R.raw.somefilename。

自動生成的R class 在專案資料夾的gen資料夾裡面有個R.java,我們平常引用的資源主要引用這個類的變數。 注意:R類是自動生成的,並且它不能被手動修改。當資源發生變動時,它會自動修改。

在程式碼中使用資源下面是一個引用資源的語法:R.resource_type.resource_name 或者 android
.R.resource_type.resource_name 其中resource_type是R的子類,儲存資源的一個特定型別。resource_name是在XML檔案定義的資源的name屬性,或者有其他檔案型別為資源定義的檔名(不包含副檔名,這指的是drawable資料夾裡面的icon.png類似的檔案,name=icon)。Android包含了很多標準資源,如螢幕樣式和按鈕背景。要在程式碼中引用這些資源,你必須使用android進行限定,如android.R.drawable.button_background。

xml檔案內引用資源

1) 引用自定義的資源

android:text="@string/hello" 這裡使用"@"字首引入對一個資源的引用--在@[package:]type/name形式中後面的文字是資源的名稱。在這種情況下,我們不需要指定包 名,因為我們引用的是我們自己包中的資源。type是xml子節點名,name是xml屬性名:Hello World, HelloDemo!

2) 引用系統資源 android:textColor="@android :color/opaque_red" 指定package: android

3) 引用主題屬性 另外一種資源值允許你引用當前主題中的屬性的值。這個屬性值只能在樣式資源和XML屬性中使用;它允許你通過將它們改變為當前主題提供的標準變化來改變UI元素的外觀,而不是提供具體的值。 android:textColor="?android:textDisabledColor" 注意,這和資源引用非常類似,除了我們使用一個"?"字首代替了"@"。當你使用這個標記時,你就提供了屬性資源的名稱,它將會在主題中被查詢--因為資 源工具知道需要的屬性資源,所以你不需要顯示宣告這個型別(如果宣告,其形式就 是?android:attr/android:textDisabledColor)。除了使用這個資源的識別符號來查詢主題中的值代替原始的資源,其命 名語法和"@"形式一致:?[namespace:]type/name,這裡型別可選。

Color Value語法: #color_value 可以儲存在res/values/colors.xml (檔名可以任意)。

xml引用:android:textColor="@color/color_name"

Java引用: int color = Resources.getColor(R.color.color_name)

其中#color_value有以下格式(A代表Alpha通道): #RGB #ARGB #RRGGBB #AARRGGBB xml示例(宣告兩個顏色,第一個不透明,第二個透明色):#f00 #80ff0000

Color Drawables語法: color_value 可以儲存在res/values/colors.xml。

xml引用:android:background="@drawable/color_name"

java引用:Drawable redDrawable = Resources.getDrawable(R.drawable.color_name) color_name和上面的一樣。

圖片 一般放在res/drawable/裡面 官方提示png (preferred), jpg (acceptable), gif (discouraged),看來一般使用png格式比較好!

xml引用 @[package:]drawable/some_file

java引用 R.drawable.some_file 引用是不帶副檔名

dimension語法: dimen_value單位 一般儲存為res/values/dimen.xml。

度量單位:

px(象素): 螢幕實際的象素,常說的解析度1024*768pixels,就是橫向1024px, 縱向768px,不同裝置顯示效果相同。in(英 寸): 螢幕的物理尺寸, 每英寸等於2.54釐米。 mm(毫米): 螢幕的物理尺寸。 pt(點) : 螢幕的物理尺寸。1/72英寸。 dp/dip : 與密度無關的象素,一種基於螢幕密度的抽象單位。在每英寸160點的顯示器上,1dp = 1px。但dp和px的比例會隨著螢幕密度的變化而改變,不同裝置有不同的顯示效果。 sp : 與刻度無關的象素,主要用於字型顯示best for textsize,作為和文字相關大小單位。

XML: android:textSize="@dimen/some_name"

Java: float dimen = Resources.getDimen(R.dimen.some_name)

assets 資料夾資源的訪問 assets資料夾裡面的檔案都是保持原始的檔案格式,需要用AssetManager以位元組流的形式讀取檔案。
1. 先在Activity裡面呼叫getAssets()來獲取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode)方法則指定讀取的檔案以及訪問模式就能得到輸入流InputStream。
3. 然後就是用已經open file 的inputStream讀取檔案,讀取完成後記得inputStream.close()。
4.呼叫AssetManager.close()關閉AssetManager。

相關推薦

android專案裡面檔案資料作用介紹res

在Android專案資料夾裡面,主要的資原始檔是放在res資料夾裡面的 1:assets資料夾是存放不進行編譯加工的原生檔案,即該資料夾裡面的檔案不會像xml,java檔案被預編譯,可以存放一些圖片,html,js, css等檔案。 2:res資料夾裡面的多個資料夾的各自介紹 res/anim/ XML

SVN管理Android專案忽略檔案資料

一. 遇到的問題      剛開始提交專案原始碼時,做了個全量提交,將專案的build、.idea、.gradle ,local.properties等檔案或目錄都提交到了程式碼倉庫中進行管理,結果發現每次對專案做了原始碼

刪除GitHub專案檔案或者資料

小白pick刪除GitHub專案的檔案或者資料夾   進入GitHub的專案倉庫,找到檔案或者資料夾所在倉庫   檔案刪除:進入要刪除的檔案,點選垃圾桶     資料夾刪除:開啟Git Bash,根據倉庫的HTTPS進入你

檔案資料和inode表的關係

檔案資料包括兩部分內容;元資料和資料兩部分,存放分別在元資料空間 和資料空間, 0 每個新檔案都會系統分配一個iNode節點編號 相當於人的×××號 在一個分割槽內具有唯一性,如果inode 編號不一樣 所佔的空間的指標指向的資料也不一樣比如 在 /home 建立大小 一個G的檔案 f1 把 f1檔案複製

JAVA io流筆記02 操作目錄遍歷檔案資料

package FileText; import java.io.File; //操作目錄 //mkdir() 建立目錄,必須保證父目錄存在,如果父目錄不存在,建立失敗 //mkdirs() 建立目錄,如果父目錄不存在,直接建立父目錄 //list() 輸出當前路徑下檔名 //listFil

檔案資料操作大全

ios開發經常會遇到讀檔案,寫檔案等,對檔案和資料夾的操作,這時就可以使用NSFileManager,NSFileHandle等類來實現。 下面總結了各種常用的操作: 1,遍歷一個目錄下的所有檔案 1 2 3

Android開發】Android 刪除指定檔案資料

/** * 刪除單個檔案 * @param filePath 被刪除檔案的檔名 * @return 檔案刪除成功返回true,否則返回false */ public boolean deleteFile(String filePath) {

用ShellExecuteEx開啟檔案資料

先來看看“深入淺出ShellExecute”  Q: 如何開啟一個應用程式? ShellExecute(this->m_hWnd,"open","calc.exe","","", SW_SHOW );或 ShellExecute(this->m_hWnd,"o

//利用 DirectoryInfo遞迴遍歷資料刪除所有檔案資料

static void Test01(string path) { DirectoryInfo dir = new DirectoryInfo("d:/aa");//操作目錄,這裡我們首先aa目錄裡面新增一些子檔案和資料夾

Android】刪除已知路徑的檔案資料

轉載請註明出處,原文連結:https://blog.csdn.net/u013642500/article/details/80153517 【功能】 delete(String delFile):刪除檔案或資料夾 deleteSingleFile(String fil

c 判斷檔案資料是否存在多種方法, 為什麼從一開始就不直接來個統一的呢?

具體內容,請看: https://blog.csdn.net/u012494876/article/details/51204615   判斷檔案或資料夾是否存在,竟然有這麼多方法: GetFileAttributes() CreateFile() _access() Find

刪除檔案資料不成功顯示被程序佔用的解決方法

 我是在解除安裝SQLServer2008的最後一步,刪除c盤下的program Files下Microsoft SOL Server資料夾下的90資料夾時出現該錯誤。解決方案如下: 1.開啟工作管理員,點選標題欄的效能,在點選資源監視器,在標題欄裡點選cpu,再在關聯的控制代碼裡搜尋

Python中os.path和os.makedirs的運用(判斷檔案資料是否存在建立資料

import os import numpy as np data = np.array([1, 2, 3]) if not os.path.exists("./data/"): print("# path not exists") os.makedirs("./data/")

C#如何操控FTP獲取FTP檔案資料列表獲取FTP檔案大小FTP上傳FTP刪除檔案FTP新建資料、刪除資料

C#如何操控FTP 出處:http://www.cnblogs.com/rond/archive/2012/07/30/2611295.html,http://www.cnblogs.com/rond   關於FTP的應用免不了要對FTP進行增刪查改什麼的。通過搜尋,整理和修改

Linux基礎02:磁碟操作檔案許可權、檔案資料操作、網路服務

1.Linux磁碟與U盤操作 1.1 顯示系統的磁碟空間用量 ##du命令也是檢視使用空間的,但是與df命令不同的是Linux du命令是對檔案和目錄磁碟使用的空間的檢視 du -sh ##查目錄使用大小(-s表示總結) ## du -sh /bin ##df命令用於顯示磁碟分割槽

在一個Android專案裡面有兩個可執行檔案,如何實現呼叫方式

我的處理方式是: 用Intent+AndroidManifest.xml的方法: 此方法是用Intent和修改AndroidManifest.xml達成的。 就是在要引用的AndroidManifest.xml檔案裡面加入被引用那個專案的activity: <activity

工作專案看門狗(記錄專案檔案以及資料的改動)

  #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/9/18 18:06 # @Author : qhh # @Site : # @File : pywatchdog.py

Windows CMD 批量修改檔案包括照片文件資料名字

1, 名字隨便起的! 跟Linux一樣。Cd 可以進入你想進去的目錄! dir命令檢視目錄下的檔案列表,檢視該目錄下的所有檔案: dir /a。就可以查詢到啦! 2,進入裡面,任意找一個照片。先右鍵檢視屬性,複製路徑。用瀏覽器開啟,就可以看到! Ct

下載github專案中的某個資料或者檔案

1.解釋 有時候由於project太大或者不想下載專案的所有檔案,只需要下載單個檔案或者資料夾,這個時候使用git就比較麻煩了。 github下載pdf檔案,使用右鍵連結另存為的時候下載的檔案無

MFC下對檔案資料的操作(複製、剪下、刪除、建立資料檔案)

1 void CFileOperationDlg::OnButtonCopy() 2 { 3 // TODO: Add your control notification handler code here 4 UpdateData(TRUE); 5 CString m_