Android resources获得资源(4)

当提供了在应用中的资源,可以通过资源ID来应用他。所有的资源ID定义在项目R类中,这个类通过aapt工具自动产生。当应用编译的时候,aapt产生包含所有资源res/目录ID的R类。每个资源类R型有子类(R.drawable),并且任意资源类型有静态整数(R.drawable.icon).这个整数id能够检索到你的资源信息。

* 虽然资源R类是资源ID实现的,凡是你不用查找资源ID,资源ID通常是由下列组成:
1. 资源类型:每个资源都是一类,如string,drawable,layout.
2. 资源名称:文件名称或者是android:name属性(string)
* 获得资源的方法
1. 代码中
2. 在xml文件中@string/hello

在代码中

可以传递资源ID作为方法的采参数在代码中,例如在ImageView中res/drawable/myimage.png

ImageView imageView=(ImageView)findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);
也可以用过getResource()方法获得Resources
语法

在代码资源文件在中语法格式:

[<package_name>.]R.<resource_type>.<resource_name>
package_name:自己的包可以省略
resource_type:R类中的子类
resource_name:要么是文件名,要么是android:name属性在xml中

下面一些用法

有很多方法可将资源ID作为参数,并且你能够获得资源通过Resources中的方法,Context.getResources()获得Resources的实例。

  • 下面一些使用的实例:

    //load a background for the current screen from a drawable
    getWindow().setBackgroundDrawableResources(R.drawable.my_background);
    //set the activity title by getting a string from the Resources this method requires a CharSequence rather than a resources ID
    getWindow().setTitle(getResource().getText(R.string.main_hello));
    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)
    **注意** 不能手动更改R类文件,是aapt文件生成的。
    
从xml中获得资源

可以定义一些数值xml属性和元素使用,使用已经存在的资源。经常在创建布局文件来提供组建的字符串和图片。

<Button 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/submit"/>
语法
@[<package_name>:]<resource_type>/<resource_name>
package_name:资源文件所在包,当来自本身的包可以省略。
resource_type:R类的子类资源

用法情形

@android:color/secondary_text_dark
参考样式属性

一个样式水性那个资源允许你参考当前应用的主题属性值。参考属性值可以定制UI元素和当前主题相匹配,而不是写死的数值。参考属性值必须:使用定义在这个主题中的属性值。
为参数属性值,名称语法基本和普通资源格式一样,但是用“?”,并且资源种类部分也是可选的。

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

* 例如,下面列举如何参考属性去设置文本颜色匹配系统主题原始字体的颜色。

<EditText id ="text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="?android:textColorSecondary"
    android:text="@string/hello_world"/>

* 其中android:textColor属性实现房前主题样式属性名称。安卓用android:textColorSecondary作为android:textColor数值。因为系统资源工具知道这个属性这个上下文要用,不需要详细写出类型(?android:attr/textColorSecondary)

获得平台资源文件

安卓包含很多的标准资源,styles,themes,layouts.获得这些资源,用android包名称作资源参考。

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myarrary));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值