Android学习二:Resources

Resources在Android体系中非常重要,常用的Resources有strings,colors,bitmaps和layouts等,你可以修改这些文件的值而不用去重新编译程序。在android中有非常多的resource类型,在这里我们主要讨论学习常用的类型。

  • String Resources

     android的strings文件放在res/values目录下面,你可以定义一个或多个XML文件来存放strings值,文件名可以随意取,不过经常情况下你看到的文件名是

strings.xml。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">hello</string>
<string name="app_name">hello appname</string>
</resources>

在程序中使用时:R.string.hello;R.string.app_name。

    Layout Resources

    在android中窗口的布局通常都是通过xml文件来完成的,文件一般放在res/layout目录下面。

public class HelloWorldActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv = (TextView)this.findViewById(R.id.text1);
tv.setText("Try this text instead");
}
...
}

代码中红色部分说明设置此Activity的view的布局文件是layout下的main.xml文件。

比如main.xml文件代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button android:id="@+id/b1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>

  • 引用Resources

Resource的引用语法结构是:@[package:]type/name。常用的

  • R.string
  • R.id
  • R.drawable
  • R.layout
  • R.attr
  • R.plural
  • R.array

在res目录下有一些重要的文件类型目录我们需要知道:

  • anim:  编译动画文件。
  • drawable:  Bitmaps.
  • layout: 定义UI和view。
  • values:Arrays,strings,colors,dimensions和styles。
  • xml: xml文件。
  • raw:Noncompiles raw files。
  • String Arrays的用法
<resources ....>
......Other resources
<string-array name="test_array">
<item>one</item>
<item>two</item>
<item>three</item>
</string-array>
......Other resources
</resources>

在代码中引用时:

//Get access to Resources object from an Activity
Resources res = your-activity.getResources();
String strings[] = res.getStringArray(R.array.test_array);

  • Plurals
<resources...>
<plurals name="eggs_in_a_nest_text">
<item quantity="one">There is 1 egg</item>
<item quantity="other">There are %d eggs</item>
</plurals>
</resources>
Resources res = your-activity.getResources();
String s1 = res.getQuantityString(R.plurals.eggs_in_a_nest_text, 0,0);
String s2 = res.getQuantityString(R.plurals.eggs_in_a_nest_text, 1,1);
String s3 = res.getQuantityString(R.plurals.eggs_in_a_nest_text, 2,2);
String s4 = res.getQuantityString(R.plurals.eggs_in_a_nest_text, 10,10);
时间: 2024-10-21 20:01:40

Android学习二:Resources的相关文章

android学习二十(使用HTTP协议访问网络)

使用HttpURLConnection 在Android上发送HTTP请求的方式一般有两种,HttpURLConnection和HttpClient,现在先学习下 HttpURLConnection的用法. 首先需要获取到HttpURLConnection的实例,一般只需new 出一个URL对象,并传入目标网络的地址,然后 调用一下openConnection()方法即可,如下所示: URL URL=new URL("http://www.baidu.com"); HttpURLCon

android学习二十三(解析json格式数据)

前面我们已经掌握了xml格式数据的解析方式,那么接下来我们学习下如何解析json格式的数据.比起xml,json的主要优势在于它体积更小,在网络上传输的时候可以更省流量.但缺点在于,它的语义性差,看起来不如xml直观. 开始之前,先在自己的电脑apache-tomcat-6.0.39\webapps\ROOT路径目录下新建一个get_data.json的文件,然后编辑这个文件,并加入如下json格式的内容: [{"id":"5","version"

Android学习二_八:Animation的使用(一) (转)

一.Animations介绍 Animations是一个实现android UI界面动画效果的API,Animations提供了一系列的动画效果,可以进行旋转.缩放.淡入淡出等,这些效果可以应用在绝大多数的控件中. 二.Animations的分类 Animations从总体上可以分为两大类: 1.Tweened Animations:该类Animations提供了旋转.移动.伸展和淡出等效果.Alpha——淡入淡出,Scale——缩放效果,Rotate——旋转,Translate——移动效果.

android学习二(Activity)

前面我简单的介绍了android的一些基础知识,当作热身吧,接下来接触android的四大组件的activity活动. 1.活动Activity是是一种保护用户界面的组件,主要用于和用户进行交互. 活动的基本使用方法 1.创建一个项目项目名为ActivityTest.使用手动创建的方式. 选择file->android project填写好项目名和包名等next,不要勾选craete activity这个选项,最后finish 2.创建好包.创建一个类FirstActivity,并继承Activ

android学习二十二(使用SAX解析xml)

上一篇博客是使用Pull解析xml文件的,Pull解析方式虽然非常好用,但它并不是我们唯一的选择.SAX解析也是一种特别常用的XML解析方式,虽然它的用法比Pull解析复杂,但在语义方面会更加的清楚. 通常情况下我们都会新建一个类继承自DefaultHandler,并重写父类的五个方法,如下所示: package com.jack.networktest; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import

android学习二十一(使用Pull解析xml)

使用Pull解析xml 为了测试从网上得到的数据信息,我们需要配置一台服务器,我使用的是tomcat6.0,怎么配置tomcat我就不讲解了.配置好了以后在apache-tomcat-6.0.39\webapps\ROOT路径下面放置一个文件就可以通过浏览器来访问了 ,比如:放置了 一个hello.html文件,浏览器进行访问的路径是:http://localhost:8080/hello.html 现在在root目录下新建一个get_data.xml文件,内容如下: <apps> <a

Android学习二:Http操作

1.初步认识HTTP HTTP(Hypertext Transfer Protocol超文本传输协议)是网络应用层协议,建立在TCP/IP基础上,HTTP使用可靠的TCP连接,默认端口是80. 较常用的HTTP为GET和POST,不同在于GET通过在请求URL中设定参数来查询,POST则是以表单的形式将数据发送给web端 2.Android下HTTP操作 package org.tonny.httpUtil; import java.util.List; import org.apache.ht

android学习二---解决ADT Buddle无法自动生成layout和res

开发环境: 1)windows 7 64位 2)adt-bundle-windows-x86_64-20140624 3)Android Development Toolkit Version: 23.0.0.1245622 Android SDK tools: Revision 23.0.5. 问题描述: 在eclipse中创建android项目,项目选择Blank Activity with Fragment或者blank activity.无法在目录res/layout里自动创建fragm

android学习二十四(网络编程的最佳实践)

前面的博客已经讲解了HttpURLConnection和HttpClient的用法,知道了如何发起HTTP请求,以及解析服务器返回 的数据.但是可能你发现了,因为一个应用程序很多地方都可能使用网络功能,而发送HTTP请求的代码基本相同,如果每次我们都去编写一遍发送HTTP请求的代码,这显然不太好. 通常情况下我们都应该将这些通用的网络操作提取到一个公共的类里,并提供一个静态方法,当想要发起网络请求的时候只需简单地调用一下这个方法即可.比如下面的写法: package com.jack.netwo