Androidでのリソースアクセス

3565 ワード

Androidのリソースは非コード部分、外部ファイルを指します.
assetsに保存されているのは、MP 3ファイルなどのオリジナルのファイルで、Androidプログラムは直接アクセスできず、AssetManagerクラスでバイナリストリームとして読み込む必要があります.
res内のリソースはRリソースクラスを介して直接アクセスできる.
Rクラスは自動的に生成され、システムで使用されるすべてのリソースファイルの識別を含む異なるリソースタイプに基づいて対応する内部クラスが生成されます.
 
1.コードでのリソースファイルの使用
コードでリソースファイルにアクセスするには、Rクラスで定義されたリソースファイルタイプとリソースファイル名でアクセスします.
具体的なフォーマットは次のとおりです.
R.リソースファイルタイプ.リソースファイル名
また、ユーザがカスタマイズしたリソースファイルにアクセスするだけでなく、システム内のリソースファイルにもアクセスできます.
アクセスシステムのリソースファイルの形式は次のとおりです.
  android.R.リソースファイルタイプ.リソースファイル名
 
2.他のリソースファイルでリソースファイルを参照
レイアウトファイルでは、ピクチャ、カラーリソース、文字列リソース、寸法リソースが参照されることがよくあります.
他のリソースで参照されるリソースの一般的なフォーマットは、次のとおりです.
@[パッケージ名:]リソースタイプ/リソース名
 
カラーアセットの使用(Use Color Asset)
色値定義の開始時には、Alpha-RGBのフォーマットで番号が付けられます.
例:
  #RGB
  #ARGB
  #RRGGBB
  #AARRGGBB
参照リソースのフォーマット:
Javaコード中:R.color.color_name
XMLファイル中:@[package:]color/color_name
使用時にresvaluesディレクトリでcolorsを定義します.xmlファイルで、色の名前と色の値のキー値のペアが格納されます.
次のようになります.
<resources>

    <color name="red_bg">#f00</color>

    <color name="blue_text">#0000ff</color>

</resources>

文字列、寸法などの他のリソースは、同様の方法です.
 
文字列リソースの使用
文字列リソースファイルstringsを作成する.xml.中身もキー値ペア
Javaコードで文字列リソースR.stringを参照する.string_name
以下のように取得できます.
  String str = getString(R.string.string_name).toString();
xmlファイルで文字列リソースを参照:@[package:]string/string_name
 
寸法アセットの使用
サイズリソースはresvaluesdimensに定義されています.xmlファイルにあります.
Androidでサポートされているサイズ単位:
単位表示
単位名
説明
dip 
デバイス独立ピクセル
異なるデバイスの異なる表示効果、dipはスクリーン密度に関係します
px
ピクセル
画面上の実際のピクセル表示は、デバイスによってディスプレイの表示効果が同じです.
in
フィート
スクリーンベースの物理寸法
mm
ミリメートル
スクリーンベースの物理寸法
pt
ポイント(ポンド)
フィートの1/72
dp
密度に関係のないピクセル
スクリーンの物理密度に対する抽象単位
sp
精度に関係のないピクセル
dpと同様に、目盛りに関係のない画素は、主にフォントサイズを処理します.
参照寸法リソース:
Javaコード:R.dimen.dimen_name
xmlファイルで:@[package:]dimen/dimen_name
 
元のXMLリソースの使用
XMLファイルは、プロジェクトのresxmlディレクトリの下に定義され、Resources.getXML()メソッドにアクセスします.
元のXMLファイルを取得する考え方はgetResources()である.getXml()は、XMLオリジナルファイルを取得し、XmlResourceParserオブジェクトを取得します.このオブジェクトによって、ドキュメントの開始か終了か、ラベルの開始か終了かを判断し、いくつかの属性を取得する方法でXMLファイルを巡り、XMLファイルの内容にアクセスします.
 
drawablesリソースの使用
drawableリソースは、主に画面を描くために使用される画像または色リソースです.Resources.getDrawable()メソッドを取得します.
drawableリソースには、Bitmap File(ビットマップファイル)、Color Drawable(色)、Nine-Patch Image(9枚の画像)の3種類があります.
Androidでサポートされているビットマップファイルにはpng、jpg、gifがあります.
ビットマップリソースを参照するフォーマット:
Javaコード:R.drawable.file_name
XMLファイル中:@[package:]drawable/file_name
 
レイアウトリソースの使用
レイアウトリソースはAndroidで最も一般的なリソースで、WebのHTMLページと同様に、画面内のコンポーネントのレイアウトをXMLファイルに定義します.
レイアウトファイルはreslayoutにあり、名前は任意です.AndroidはLayoutInflaterクラスを通じてXMLファイルのコンポーネントを可視化されたビューコンポーネントに解析します.
ActivityでActivityを呼び出す.setContentView()メソッドは、レイアウトファイルをActivityのインタフェースに設定し、findView ById()メソッドを使用してレイアウト内のコンポーネントを取得します.
レイアウトファイルを参照:
Javaコード:R.layout.my_layout
XMLファイル中:@[package:]layout/my_layout
 
メニューリソースの使用
どのビューコンポーネントの作成方法にも2つあります.1つは、レイアウトファイルで作成を宣言することです.もう1つは、コードに作成することです.
Androidのメニューはオプションメニュー、コンテキストメニュー、サブメニューに分かれており、XMLファイルで定義を宣言し、コードではMenuInflaterクラスで使用できます.
メニューリソースファイルもXMLファイルで、プロジェクトresmenuディレクトリの下に置かれています.R.menuを通ります.my_menuの方式で参照します.
典型的なメニューリソースファイルの構造:ルート要素は、ルート要素にサブ要素がネストされ、要素にもがネストされてサブメニューを形成することができます.