Xamarin 简明教程

Xamarin - Android Resources

创建新的 Android 项目时,会默认将一些文件添加到项目中。我们将这些默认项目文件和文件夹称为 Android Resources 。查看以下屏幕截图。

andriod resources

默认 Android 资源包括以下内容 −

  1. AndroidManifest.xml file − 它包含有关您的 Android 应用程序的信息,例如,应用程序名称、权限等。

  2. Resources folder − 资源可以是图像、布局、字符串等,可以通过 Android 的资源系统加载的资源。

  3. Resources/drawable folder − 它存储您将在应用程序中使用的所有图像。

  4. Resources/layout folder − 它包含 Android 用于构建用户界面的所有 Android XML 文件(.axml)。

  5. The Resources/values folder − 它包含 XML 文件,用于在整个应用程序中声明字符串(和其他类型)的键值对。这通常是怎样在 Android 上设置多语言本地化。

  6. Resources.designer.cs - 当 Android 项目被创建时,该文件会自动创建,并且它包含引用 Android 资源的唯一标识符。

  7. MainActivity.cs file - 这是您的 Android 应用程序的第一个活动,并且从中启动了主要的应用程序操作。

可以使用 unique ID 来以编程方式访问资源文件,该文件存储在 resources.designer.cs 文件中。该 ID 包含在一个名为 Resource 的类中。添加到项目中的任何资源都会自动生成在 resource class 中。

下面的代码展示了如何创建一个包含七张图片的网格视图项目:

namespace HelloGridView {
   [System.CodeDom.Compiler.GeneratedCodeAttribute
      ("Xamarin.Android.Build.Tas ks",
      "1.0.0.0")]
   public partial class Resource {
      static Resource() {
         global::Android.Runtime.ResourceIdManager.UpdateIdValues();
      }

      public static void UpdateIdValues() {}
      public partial class Attribute {
         static Attribute() {
            global::Android.Runtime.ResourceIdManager.UpdateIdValues();
         }

         private Attribute() {}
      }

      public partial class Drawable {
         // aapt resource value: 0x7f020000
         public const int Icon = 2130837504;

         // aapt resource value: 0x7f020001
         public const int img1 = 2130837505;

         // aapt resource value: 0x7f020002
         public const int img2 = 2130837506;

         // aapt resource value: 0x7f020003
         public const int img3 = 2130837507;

         // aapt resource value: 0x7f020004
         public const int img4 = 2130837508;

         // aapt resource value: 0x7f020005
         public const int img5 = 2130837509;

         // aapt resource value: 0x7f020006
         public const int img6 = 2130837510;

         // aapt resource value: 0x7f020007
         public const int img7 = 2130837511;

         static Drawable() {
            global::Android.Runtime.ResourceIdManager.UpdateIdValues();
         }

         private Drawable() {}
      }

      public partial class Id {
         // aapt resource value: 0x7f050000
         public const int gridview = 2131034112;

         static Id() {
            global::Android.Runtime.ResourceIdManager.UpdateIdValues();
         }

         private Id() {}
      }

      public partial class Layout {
         // aapt resource value: 0x7f030000
         public const int Main = 2130903040;
         static Layout() {
            global::Android.Runtime.ResourceIdManager.UpdateIdValues();
         }
         private Layout() {}
      }

      public partial class String {
         // aapt resource value: 0x7f040001
         public const int ApplicationName = 2130968577;

         // aapt resource value: 0x7f040000
         public const int Hello = 2130968576;

         static String() {
            global::Android.Runtime.ResourceIdManager.UpdateIdValues();
         }
         private String() {}
      }
   }
}

从上面的代码中,七张照片被引用在一个名为 drawable 的类中。这些图片是通过编程方式添加的。如果用户向项目中添加另一张图片,它也将被添加到 drawable 类。项目中包含的 gridview 也被添加并存储在它自己的一个类中。 resources folder 中包含的每个项目都会自动生成并存储在一个类中。