Android移动开发基础案例教程 第2章 Android UI开发

7 篇文章 19 订阅

第二章 Android UI开发 学习笔记

2.1 布局的创建

image.png

关于布局

  • 在Android程序中界面是通过布局文件设定的,在每个应用程序创建时会默认包含一个主界面布局,该布局位于res/layout目录中。
  • 实际开发中每个应用程序都包含多个界面,而程序默认提供的一个主界面布局无法满足需求,因此经常会在程序中添加多个布局。

image.png

2.2 布局的类型

image.png

2.2.1 线性布局
  • 线性布局(LinearLayout)主要以水平或垂直方式来显示界面中的控件。当控件水平排列时,显示顺序依次为从左到右,当控件垂直排列时,显示顺序依次为从上到下。
  • image.png

image.png

2.2.2 相对布局
2.2.3 帧布局
2.2.4 表格布局
2.2.5 绝对布局

2.3 常用控件

利用Html生成,空间是界面组成的主要元素,是与用户尽相直接交互的

2.3.1 TextView
  • 用于显示文字(字符串)的控件,可在代码中通过设置属性改变文字的大小、颜色、样式等功能

image.png

2.3.2 EditView
  • EditText继承自TextView,可以进行编辑操作,将用户信息传递给Android程序
  • 还可以为EditText控件设置监听器,用来测试用户输入的内容是否合法。

image.png

2.3.3 Button

  • Button是按钮,是用于响应用户的一系列点击事件,使程序更加流畅和完整。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o0qJVBaD-1616465270913)(https://cdn.nlark.com/yuque/0/2021/png/2196885/1615856789198-eb754688-c820-48b2-98b2-9984e6e9afac.png)]

  • 4种实现方式–点击事件实现

    • 指定指定Button的onClick属性方式
      • image.png
    • 独立式方式
      • image.png
    • 接口方式
      • image.png
    • 匿名内部类方式
      • image.png
2.3.4 RadioButton
  • RadioButton为单选按钮,它需要与RadioGroup配合使用,提供两个或多个互斥的选项集。
  • RadioGroup是单选组合框,可容纳多个RadioButton,并把它们组合在一起,实现单选状态。

image.png

设置监听事件

  • 利用setOnCheckedChangeListener()监听RadioGroup控件状态,通过if语句判断被选中RadioButton的id。
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            if (checkedId == R.id.rbtn) {
                textView.setText("您的性别是:男");
            } else {
                textView.setText("您的性别是:女");
            }
        }
     });
2.3.5 ImageView
  • ImageView是视图控件,它继承自View,其功能是在屏幕中显示图像。ImageView类可以从各种来源加载图像(如资源库或网络),并提供缩放、裁剪、着色(渲染)等功能。
<!--设置背景图片-->
<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/bg" />   
<!--设置背景图片-->
    <ImageView
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:src="@android:drawable/sym_def_app_icon"/>   

2.3.6 实战演练——QQ登录界面

image.png

2.4 常见对话框

对话框也是程序与用户交互的一种方式,通常用于显示当前程序提示信息以及相关说明,以小窗口形式展现。 常见对话框有以下几种:

2.4.1 普通对话框

普通对话框(Dialog)一般只会显示提示信息,并具有确定和取消按钮。

image.png

2.4.2 单选对话框

单选对话框和RadioButton作用类似,只能选择一个选项,它是通过AlertDialog对象调用setSingleChoiceItems()方法创建的。

image.png

2.4.3 多选对话框

多选对话框通常在需要勾选多种选项时使用,例如添加兴趣爱好、喜爱的电影等。创建多选对话框与创建单选对话框类似,调用setMultiChoiceItems()方法就可实现。

image.png

2.4.4 进度条对话框

进度条对话框一般在应用程序实现耗时操作时使用。Android中提供了两种进度条样式,圆形进度条和水平进度条。

image.png

2.4.5 消息对话框

消息对话框(Toast)是轻量级信息提醒机制,显示在应用程序界面的最上层,一段时间后自动消失不会打断当前操作,也不获得焦点。

image.png

2.4.6 自定义对话框

为了提高用户体验,达到更理想的效果,可根据需求自定义对话框样式。具体创建步骤如下:

1. 创建布局

创建一个自定义对话框的布局文件(my_dialog.xml),布局中需要设定对话框的标题、对话框内容以及确定和取消按钮。

2. 创建自定义对话框

创建一个类MyDialog继承自Dialog类,主要用于初始化自定义对话框中的控件以及响应按钮的点击事件。

3. 使用自定义对话框

在MainActivity中,调用MyDialog的构造方法将自定义对话框显示出来

package cn.itcast.androiddialog;

import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //普通对话框
//        AlertDialog dialog;                           //声明对象
//        dialog = new AlertDialog.Builder(this)        //绑定当前界面窗口
//                .setTitle("Dialog对话框")             //设置标题
//                .setMessage("是否确定退出?")         //设置提示信息
//                .setIcon(R.mipmap.ic_launcher)       //设置图标
//                .setPositiveButton("确定", null)     //添加“确定”按钮
//                .setNegativeButton("取消", null)     //添加“取消”按钮
//                .create();                          //创建对话框
//        dialog.show();                              //显示对话框


        //单选对话框
//        new AlertDialog.Builder(this)               //生成对话框
//                .setTitle("请选择性别")              //设置标题
//                .setIcon(R.mipmap.ic_launcher)      //设置图标
//                .setSingleChoiceItems(new String[]{"男", "女"}, 0,
//                        new DialogInterface.OnClickListener() {
//                            public void onClick(DialogInterface dialog, int which) {
//                            }
//                        }
//                )
//                .setPositiveButton("确定", null)
//                .show();

        //多选对话框
//        new AlertDialog.Builder(this)
//                .setTitle("请添加兴趣爱好!")
//                .setIcon(R.mipmap.ic_launcher)
//                .setMultiChoiceItems(new String[]{"旅游", "美食", "汽车", "宠物"},
//                        null, null)
//                .setPositiveButton("确定", null)
//                .show();

        //进度条对话框
//        ProgressDialog prodialog;                //声明对话框
//        prodialog = new ProgressDialog(this); //构建对话框
//        prodialog.setTitle("进度条对话框");
//        prodialog.setIcon(R.mipmap.ic_launcher);
//        prodialog.setMessage("正在下载请等候...");
//        prodialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); //设置水平进度条
        prodialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);//设置圆形进度条
//        prodialog.show();


        //创建Toast
//         Toast.makeText(MainActivity.this, "Hello,Toast", Toast.LENGTH_SHORT).show();

        //自定义对话框
        MyDialog myDialog = new MyDialog(this, "我是自定义的Dialog");
        myDialog.show();

    }

}

2.5 样式和主题

2.5.1 样式

样式(style)是包含一种或多种控件的属性集合,可以指定控件高度、宽度、字体大小及颜色等。

  • 自定义样式代码如下(styles.xml):

image.png

  • 引用自定义样式代码如下(activity_main.xml):

image.png

2.5.2 主题

主题(theme)应用到整个Activity和Application的样式,当设置好主题后,Activity或整个程序中的视图都将使用主题中的属性,当主题和样式中的属性发生冲突时,样式的优先级要高于主题。 自定义主题代码如下(styles.xml):

image.png

  • 引用自定义主题代码如下(AndroidManifest.xml):

image.png

2.6 国际化

国际化(internationalization)的应用具备支持多种语言功能,能被不同国家或地区用户同时访问,提供符合访问者阅读习惯的页面和数据。

由于国际化单词internationalization首字母“I”和尾字母“N”之间有18个字符,因此被简称为I18N。

image.png(具体待展开)

image.png

image.png

2.7 程序调试

2.7.1 单元测试

  • 单元测试是指在应用程序开发过程中对最小的功能模块进行测试,可以在完成某个功能之后对该功能进行单独测试。
  • 使用AndroidStudio开发工具完成单元测试非常简单,在项目创建时Android Studio就已经默认创建了一个androidTest包和ApplicationTest类,所有测试的功能模块写入此类即可。
  • image.png

image.png

image.png

image.png

2.7.2 LogCat的使用
  • LogCat是Android中的命令行工具,用于获取程序从启动到关闭的日志信息。
  • Log类所输出的日志内容分为五个级别,分别对应Log类中的Log.v()、Log.d()、Log.i()、Log.w()、Log.e()静态方法。Android4.0新增加Assert比较特殊,没有对应的静态方法。

image.png

过滤显示

image.png

image.png

2.7.3 Debug的使用

待解决:环境出现问题

image.png

【学习笔记】

【学习资料】

### 回答1: 《Android移动开发基础案例教程第二》是一本非常实用的Android开发指南,提供了丰富的基础案例教程,帮助读者提高Android开发技能。 该书配合源码使用,学习者可根据书中教程,从源码中学习如何使用Android SDK进行开发。源码中包含了丰富的示例代码,如UI控件基础、布局管理器、事件处理、Fragment碎片、Intent启动、ListView列表显示、GridView网格显示、RecyclerView列表及网格等常用控件使用方法,通过运行源码,读者可以更加清楚地理解这些知识点的实际应用场景。 同时,源码中也提供了完整的工程结构,读者可以从项目中学习如何搭建Android应用,如何进行资源文件的管理和使用等,为日后开发奠定了扎实的基础。 总之,《Android移动开发基础案例教程第二》配合源码使用,可以帮助读者迅速掌握开发Android应用的基础技能,在实践中积累经验,为日后的Android开发之路打下坚实的基础。 ### 回答2: 《Android移动开发基础案例教程(第二)》是一本针对初学者编写的Android开发指南。本书的源码包含了许多实用案例,可以帮助读者更好地学习和掌握Android开发基础知识。 本书的源码总共包含了16个案例,其中包括了Activity、Intent、UI设计、布局、数据存储、网络通信等多个方面的内容。每个案例都循序渐进地展示了整个开发过程,从界面设计到逻辑代码的实现,再到测试和发布,全方位地让读者理解每一步。 此外,本书的源码也具有高精度、高效率、易扩展的特点,并且代码注释非常详细,使得读者可以快速了解每个函数和变量的作用,加深对代码的理解。 总体来说,《Android移动开发基础案例教程(第二)》是一本优秀的Android开发入门指南,通过学习书中的源码,读者不仅可以熟悉Android开发基础知识,还可以掌握开发过程中的一些规范和最佳实践,从而更加高效地进行开发。 ### 回答3: 《Android移动开发基础案例教程 第二》是一本介绍Android开发基础知识的教材,它通过不同的案例来讲解Android开发中常用的技术和工具。本书的第二比第一更新了更多的实例代码,同时更新了对Android Studio工具的介绍。 本书的代码清晰易懂,是初学者入门Android开发的好教材。该书源码可以在GitHub上下载,包含了本书中所有案例的完整代码和资源文件。学习者可以通过运行源码来快速了解案例的实现原理,并且可以自己进行修改和改进。 本书的案例涉及的知识点包括了Android界面设计、多媒体开发、网络编程等多个方面。通过学习这些案例,读者可以逐步掌握Android开发的关键技术,提升自己的编程能力。 总之,通过学习《Android移动开发基础案例教程 第二》的源码,读者可以快速入门Android开发,掌握关键的技术和工具,同时也可以通过源码的改进和扩展来深入学习Android开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是我,Zack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值