1.创建界面

新建一个java类

androidstudio设置app设置封面_控件

例子中为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文件

androidstudio设置app设置封面_java_02

添加字符串资源,布局文件是一个XML文件,所以也可以直接修改其xml代码。可以直接添加text,修改text属性

androidstudio设置app设置封面_ui_03

添加字符串变量作为添加到text中的内容

androidstudio设置app设置封面_java_04

androidstudio设置app设置封面_android_05

调用刚刚生成的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 属性

androidstudio设置app设置封面_控件_06

首先在布局文件中,将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类的子类,所以从外部看也是一个控件,只是其内部还可以包含控件

androidstudio设置app设置封面_android_07

从运行起来之后对象之间的关系来看,每个控件对应一个对象,一个ViewGroup对象管理着其内部的所有控件对象,通过其布局方法,管理内部控件的大小和位置。ViewGroup对象还可以再次包含ViewGroup对象。

androidstudio设置app设置封面_java_08

常用控件可以在控件面板上找到。可以在布局文件中创建控件,有两种方式:

  1. 从控件面板将控件拖动到界面屏幕,在控件属性面板编辑各种属性
  2. 直接编辑XML代码,每个控件是一个XML节点,每个控件属性是一个节点属性。控件的从属关系对应于XML节点的从属关系。

也可以采用Java代码创建控件,方法是创建控件类的对象,对象的属性对应控件属性,通过调用相应方法设置。