概述
概述:
一个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 参数,您可以利用
Resources
中的方法检索资源。您可以通过Context.getResources()
获得Resources
的实例。
在代码中访问资源的示例:
// Load a background for the current screen from a drawable resourcegetWindow()
.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 IDgetWindow()
.setTitle
(getResources().getText
(R.string.main_title)); // Load a custom layout for the current screensetContentView
(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);在XML中访问资源:
<TextView android: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> : 文件名称。
引用系统资源:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/secondary_text_dark_nodisable"/>
引用样式:
?[<package_name>:][<resource_type>/]<resource_name>
这几个参数和上面一样, 只是把@换成了?
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="?android:textColorSecondary"/>
访问平台资源:
Android 包含许多标准资源,例如样式、风格主题和布局。要访问这些资源,请通过 android
包名称限定您的资源引用。例如,您可以将 Android
提供的布局资源用于 ListAdapter
中的列表项:
setListAdapter
(newArrayAdapter
<String>(this, android.R.layout.simple_list_item_1, myarray));
android.R.layout.simple_list_item_1 这是android平台为ListView定义的布局资源。
res目录下的资源访问, 大概就这些东西。 下一篇会写 资源的类型
最后
以上就是可爱机器猫为你收集整理的Android 访问res目录下的资源的全部内容,希望文章能够帮你解决Android 访问res目录下的资源所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复