• 3.App Resources-Accessing Resources


    1. Accessing Resources

      Once you provide a resource in your application, you can apply it by referencing its resource ID. All resource IDs are defined in your

        project's R class, which the aapt tool automatically generates. 

      When your application is compiled, aapt generates the R class, which contains resource IDs for all the resources in your res/ directory. For

        each type of resource, there is an R subclass (for example, R.drawable for all drawable resources), and for each resource of that type,

        there is a static integer (for example, R.drawable.icon). This integer is the resource ID that you can use to retrieve your resource.

      Although the R class is where resource IDs are specified, you should never need to look there to discover a resource ID.

      There are two ways you can access a resource:

      <1> In Code

        Using a static integer from a sub-class of your R class, such as:

         R.string.hello 

      <2> In XML

        Using a special XML syntax that also corresponds to the resource ID defined in your R class, such as:

         @string/hello 

      

    2. Accessing Resources in Code

      You can use a resource in code by passing the resource ID as a method parameter. For example, you can set an ImageView to use the

        res/drawable/myimage.png resource using setImageResource():

       1 ImageView imageView = (ImageView) findViewById(R.id.myimageview); 2 imageView.setImageResource(R.drawable.myimage); 

      2.1 Syntax

        [<package_name>.]R.<Resource_type>.<resource_name>

        <package_name> is the name of the package in which the resource is located (not required when referencing resources from your

                  own package).

        <Resource_type> is the R subclass for the resource type.

        <resource_name> is either the resource filename without the extension or the android:name attribute value in the XML element

                  (for simple values).

      2.2 Use cases

        There are many methods that accept a resource ID parameter and you can retrieve resources using methods in Resources. You can

          get an instance of Resources with Context.getResources(). 

    // Load a background for the current screen from a drawable resource
    getWindow().setBackgroundDrawableResource(R.drawable.my_background_image) ;
    
    // Set the Activity title by getting a string from the Resources object, because
    //  this method requires a CharSequence rather than a resource ID
    getWindow().setTitle(getResources().getText(R.string.main_title));
    
    // Load a custom layout for the current screen
    setContentView(R.layout.main_screen);
    
    // Set a slide in animation by getting an Animation from the Resources object
    mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
            R.anim.hyperspace_in));
    
    // Set the text on a TextView object using a resource ID
    TextView msgTextView = (TextView) findViewById(R.id.msg);
    msgTextView.setText(R.string.hello_message);

    3. Accessing Resources from XML

      3.1 Syntax

        @[<package_name>:]<resource_type>/<resource_name>

      3.2 Use cases

        To reference a style attribute, the name syntax is almost identical to the normal resource format, but instead of the at-symbol (@),

          use a question-mark (?), and the resource type portion is optional. For instance:

        ?[<package_name>:][<resource_type>/]<resource_name>

      3.3 Accessing Platform Resources

        Android contains a number of standard resources, such as styles, themes, and layouts. To access these resource, qualify your

          resource reference with the android package name. For example, Android provides a layout resource you can use for list items   

          in a ListAdapter:

       setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myarray)); 

        In this example, simple_list_item_1 is a layout resource defined by the platform for items in a ListView. You can use this instead of

          creating your own layout for list items. 

  • 相关阅读:
    mybatis学习笔记
    markdownPad常用功能示例
    2018-2019-2 《Java程序设计》第3周学习总结
    2018-2019-2 《Java程序设计》第2周学习总结
    2018-2019-2 《Java程序设计》第1周学习总结
    Djnago models 一对多、多对多
    Superset 安装
    lvm 添加分区
    partprobe 重新检测Linux系统分区
    Docker 、Docker Compose 安装
  • 原文地址:https://www.cnblogs.com/iMirror/p/4069149.html
Copyright © 2020-2023  润新知