1.创建界面
新建一个java类
例子中为Activity创建的类叫MainActivity,覆盖了其onCreate方法,在其中编写了创建界面的代码。首先创建了一个TextView控件,并将其显示的文本设置为“Hello World”。然后将该TextView设置为Activity的视图,即显示的界面。具体代码如下:
package com.wcm.a0301uibasic;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("hello World!");
setContentView(tv);
}
}
在AndroidManifest.xml中声明Activity(写在application中)的代码如下:
<activity android:name=".MyActivity"
android:label="@string/app_name"
android:exported="true">
<!-- 把我们的activity作为应用的主活动
主应用:桌面有这个应用图表,一点这个应用就跳到我们的这个activity
-->
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
2.创建布局文件
新建xml文件
添加字符串资源,布局文件是一个XML文件,所以也可以直接修改其xml代码。可以直接添加text,修改text属性
添加字符串变量作为添加到text中的内容
调用刚刚生成的text进行显示,在原来的MainActivity进行修改:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
// TextView tv = new TextView(this);
// tv.setText("hello World!");
// setContentView(tv);
setContentView(R.layout.main_layout);//获取刚刚创建的布局文件中的string
}
}
3.混合方式
界面中的每个组件都是一个java对象,只需要获取到这个对象就可以利用代码对这个对象进行修改。
在布局文件中选中 textValue,添加 id 属性
首先在布局文件中,将TextView控件的id属性设置为textView1;然后在Activity的onCreate方法中,通过findViewById方法获取该控件的对象;再调用其setTextColor方法设置文字颜色。
package com.wcm.a0301uibasic;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
// TextView tv = new TextView(this);
// tv.setText("hello World!");
// setContentView(tv);
setContentView(R.layout.main_layout);
TextView tv1 = findViewById(R.id.textValue1);//返回一个TextVIew对象
tv1.setTextColor(0xFFFF0000);//对应的数字每两位分别是不透明红绿蓝
}
}
4.用户界面组织
一个界面中通常有多个组件,需要有一个一个界面中通常有多个组件,需要有一个容器来管理,Android中设计了ViewGroup类来做容器。在Android中,所有的UI界面都是由View类和ViewGroup类及其子类组合而成的。
从代码中类的继承关系来看,View类是所有UI控件的基类,ViewGroup类是容纳这些UI控件的容器。ViewGroup也是View类的子类,所以从外部看也是一个控件,只是其内部还可以包含控件
从运行起来之后对象之间的关系来看,每个控件对应一个对象,一个ViewGroup对象管理着其内部的所有控件对象,通过其布局方法,管理内部控件的大小和位置。ViewGroup对象还可以再次包含ViewGroup对象。
常用控件可以在控件面板上找到。可以在布局文件中创建控件,有两种方式:
- 从控件面板将控件拖动到界面屏幕,在控件属性面板编辑各种属性
- 直接编辑XML代码,每个控件是一个XML节点,每个控件属性是一个节点属性。控件的从属关系对应于XML节点的从属关系。
也可以采用Java代码创建控件,方法是创建控件类的对象,对象的属性对应控件属性,通过调用相应方法设置。