Android 访问res目录下的资源
2016-06-26 15:24
162 查看
概述:一个android应用会包含很多的资源文件,比如图片, 文字, 样式, 布局等等文件。 这篇博客主要记录下android中访问res目录下的资源文件。res 目录下通常有 anim, animation, drawable, mipmap, layout, menu, raw, values 等子目录。相信这些文件目录对android开发者来说是再熟悉不过了。下面我们来总结一下,这些文件的具体的访问方式,和应该注意的地方, 让我们更清楚的认识,为什么应该这么用。在android开发中, 经常使用这些资源文件, 最多的应该也是通过 R.<resourceType>.<filename>的方式吧。这个R是应用编译时, aapt自动生成的,这个R文件的位置,在app/build/intermediates/classes/<packagename>/R.class 。可以看到res下面的资源都在R.class中, 以静态类, 静态常量存在。我们使用这些资源的时候,就是通过这个R类应用的。访问资源的方式有两种:1. 在Java代码中使用:R.drawable.abc_ab_share_pack_mtrl_alpha 这样就可以应用到这个abc_ab_share_pack_mtrl_alpha 资源文件了。2. 在XML文件中应用: @drawable/abc_ab_share_pack_mtrl_alpha 用例:为ImageView设置图片
ImageView imageView = (ImageView) findViewById(R.id.imageView); imageView.setImageResource(R.drawable.app_logo);语法:
[<package_name>.]R.<resource_type>.<resource_name>
<package_name> : 表示包名, 如果是应用的资源来自自己的资源包, 则不需要。
<resource_type> : 表示R子类。
<resource_name> : 资源文件名。
有许多方法接受资源 ID 参数,您可以利用 [code]Resources中的方法检索资源。您可以通过
Context.getResources()获得
Resources的实例。[/code]
在代码中访问资源的示例:
// Load a background for the current screen from a drawable resource[code]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 objectmFlipper.
setInAnimation(AnimationUtils.loadAnimation(this, R.anim.hyperspace_in));// Set the text on a TextView object using a resource IDTextView msgTextView = (TextView) findViewById(R.id.msg);msgTextView.
setText(R.string.hello_message);[/code]
在XML中访问资源:
<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello"/>
语法:
@[<package_name>:]<resource_type>/<resource_name>
<package_name> : 包名, 同一包中的资源不需要。
<resource_type> : R中的子类。
<resource_name> : 文件名称。引用系统资源:
<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@android:color/secondary_text_dark_nodisable"/>引用样式:
?[<package_name>:][<resource_type>/]<resource_name>
这几个参数和上面一样, 只是把@换成了?
<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="?android:textColorSecondary"/>访问平台资源:Android 包含许多标准资源,例如样式、风格主题和布局。要访问这些资源,请通过
android包名称限定您的资源引用。例如,您可以将Android提供的布局资源用于
ListAdapter中的列表项:
setListAdapter(new
ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myarray));[/code]
android.R.layout.simple_list_item_1 这是android平台为ListView定义的布局资源。res目录下的资源访问, 大概就这些东西。 下一篇会写资源的类型
相关文章推荐
- Android系统的常用权限
- Android 更新UI的方法汇总
- Android TabLayout(选项卡布局)简单用法实例分析
- Android 监听锁屏、解锁、开屏 功能代码
- android键盘监听
- Fragment生命周期
- android开发实现微博正文效果、顶部悬浮、ScrollView嵌套ListView
- Android 自定义Dialog,文字动态加载效果。
- Android屏幕适配
- Android开源框架Universal-Image-Loader基本介绍及使用
- android内存优化系列之一基础篇
- 获取联系人
- TextView实现复制、滑动、行数限制多余部分...表示
- View抖动
- 自定义SlideBar
- Pinyin4j - utils
- 通用ListAdapter
- android对象池
- 考研英语Android版演示文档
- Android报No resource found that matches the given name问题的解决