android中的资源

在Android中,界面相关的资源,控件,图片,字符串等一般都放在xml文件中;

当然也可以完全通过代码实现,不用xml;


一般情况下,在xml中的资源,Android会自动生成一个R类,每个资源对应一个静态变量的id值;

Android的sdk的很多函数参数支持直接通过ID值应用;



Android SDK也会自带一些资源,通过 android.R类获取;



如果想把相关的ID值,转换为响应的对象变量,如: string的id,转换为 String的对象,一般通过 Resources类;

一般可以直接通过 Resources getResources()函数直接获取,然后在通过其相关的函数转换相关的id为相应的对象;



资源与xml文件

1:

上面已经说了,资源可以放到XML文件中;

这里还要强调一点:一个资源也可以对应一个单独的XML,如果就像一个Layout对应一个xml; 一个View也可以对应一个XML等等一样;


2:

在Android中,可以通过代码建立资源,也可以通过xml获取资源;

所以如果自己想要自定义一个类,如 MyLayout; classMyLayout extendsLinearLayout;

自己建立了一个MyLaout类,是LinearLayout的子类,当然可以通过代码设计MyLayout,但是也可以自己将MyLayout和一个自己新建的xml文件关联;

在工程上,右键,新建,XML,Layout XML;

然后将XML文件中的名称换做自己MyLayout的名称,注意,要保护包名,当然默认会提示你添加;


 




控件与xml文件

一般的控件如: TextView,可以完全通过代码生成到UI上,也可以通过tag标签在Layout的xml中添加,如:

<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.think.myapplication.MainActivity">    <TextView        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="Hello World!"        android:id="@+id/textView""/>

RelativeLayout>


通常在xml文件中点击"<",会自动弹出提示,要选择的tag标签,包括已有的SDK中的类,也包括自定义的类(如果自己定义了控件类);

然后选择类,然后设置控件类的相关属性,包括添加id等;

关于xml中控件的设置,对应用编写代码的理解,一般可以理解为(如上示例),创建了一个TextView对象,然后设置相关属性(这里这样理解比较合适);

                                                                                        也可理解为:继承一个TextView的新类,然后重写了一些UI显示(这个示例这么理解不太合适);


当然也可以重新单独生成一个xml文件,然后里面只写了一个TextView的设置,如MyTextView,这里可以理解为继承一个TextView的新类;可以通过多种方式获取这个view;


如果要在一个Layout的xml文件调用这个新的MyTextView,一般可以通过:

  
这样就相当于MyTextView是一个新的控件类一样;



所以,一般自己写一个控件类,要像个关联xml,前面的标签一定是自己的类名(必须是完整的包含包名的类名);然后在设置相关属性;

















更多相关文章

  1. 关于启动Android模拟器时,运行时,会再弹出一个模拟器的问题
  2. Android虚拟平台的编译和整合
  3. android studio 使用adb命令传递文件到android设备
  4. Qt on Android:让 Qt Widgets 和 Qt Quick 应用全屏显示
  5. Android(安卓)如何自己定义控件的样式 Shape
  6. Android中的13种Drawable小结
  7. (最全最详)Android简述
  8. android项目目录结构
  9. Android构建系统和Gradle知识整理

随机推荐

  1. jieba(结巴)Python分词器加载到Eclipse方
  2. python 字符串操作
  3. python 简单图像处理(2) 镜像
  4. python中函数参数传递的几种方法
  5. Python(名称空间、函数嵌套、函数对象)
  6. flask-admin 新增功能关联两张表,关联的表
  7. IronPython编辑器 —— FantasyPython雏
  8. 数据挖掘(三)分类模型的描述与性能评估,以决
  9. Windows7下搭建Django运行环境
  10. Python3 串口两进程同时读写