pro android 2第三章(九)资源进阶(上)

为了尽快的向网友介绍其他android开发的核心知识,对于资源的进阶部分就概括的说一下。一来因为大家刚接触到android开发,写太多大家也不容易理解;二来随着讨论的深入,我们可以回过头来把这些内容补全。

String资源深入

这里讲到了如何在XML文件中定义更多的string资源,如quoted strings,HTML strings,java formated_strings等。

下面分别是他们在XML文件中的语法:

<resources>

<string name = "quoted_string">"quoted' string"</string>

<string name="tagged_string">

Hello <b><i>加粗的文字</i></b>

</string>

<string name="java format_string">

Hello %2$s java format string. %1$s again

</string>

</resources>

下面是在Java代码中使用String资源

比如使用quoted_string,并在text view里进行设置

String quotedString = activity.getString(R.string.quoted_string);

textView.setText(quotedString);

使用html string

String htmlTaggedString = activity.getString(R.string.tagged_string);

Spanned textSpan = android.text.Html.fromHtml(htmlTaggedString);

textView.setText(textSpan);

注意:android并不支持所有的Html格式

使用Java format string

String javaFormatString = activity.getString(R.string.java_fromat_string);

String substitutedString = String.format(javaFromatString,"Hello","Android");

textView.setText(substitutedString);

度量资源(Dimension Resources)深入

像素、英尺、点阵都是度量资源,它们带来的方便是:可以不修改源代码来改变UI的样式。

下面是在XML文件中定义Dimension Resources

<resources>

<dimen name = "mysize_in_pixels">1px</dimen>

<dimen name = "mysize_in_db">5dp</dimen>

<dimen name="medium_size">100sp</dimen>

</resources>

注:其中的dp指独立于密度的像素单位,sp是独立于伸缩的像素单位

下面是Java通过Resource对象的实例来获得dimension

Float dimen = activity.getResources().getDimension(R.dimen.mysize_in_pixels);

下面是在XML中定义TextView时引用dimension(在XML文件里采用的是简写dimen

<TextView android: layout_width="fill_parent"

Android:textSize="@dimen/medium_size" />

图像资源深入

从以前的讨论当中可以知道图像资源所产生的ID值是由文件名决定的,比如在/res/drawable目录下有个sample_image.jpg文件,那么资源ID就是R.drawable.sample_image。要注意的是,图像资源必须放在/res/drawable文件夹下,而且不允许在此文件夹下的子文件夹中,否则不会被读取。

下面是在XML中定义Button时引用图像资源

<Button

Android:id="@+id/button1"

Android:background="@drawable/sample_image"

/>

你也可以使用Java代码来调用它:

BitmapDrawable d = activity.getResources().getDrawable(R.drawable.sample_image);

button.setBackgroundDrawable(d);

Color-Drawable Resources

Android里,图像属于drawable资源的一种。Android还支持其他drawable的资源,比如color-drawable资源,主要代表一个颜色块。

要定义这些颜色块,你需要在/res/values目录中的XML文件中用drawable节点来定义。

下面是在XML文件中定义Color-Drawable 资源

<resources>

<drawable name="red_rectangle">#f00</drawable>

</resources>

下面是在Java代码里使用Color-Drawable资源

ColorDrawable redDrawable = (ColorDrawable) 

activity.getResources().getDrawable(R.drawable.red_rectangle);

textView.setBackground(redDrawable);

XML代码里引用

<TextView android:layout_width="fill_parent"

Android:background="@drawable/red_rectangle" />

这里需要指出的一点是:在android的官方文档中没有提供圆角矩形的相关支持,这里我们通过<shape>标签来定义圆角矩形,尽管<shape>标签也未在官方文档中出现。

下面是在/res/drawable/my_rounded_rectangle.xml文件中的定义:

<shape xmlns:android="http://schemas.android.com/apk/res/randroid">

<solid android:color="#f0600000"/>

<corners android:radius="13dp" />

</shape>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值