Android学习笔记1

Android学习笔记1

Activity

​ 活动是一种包含用户界面的组件,主要用于和用户的交互。一个应用程序包含0个或者多个活动,但不包含任何活动的应用程序很少见,所以基本上每个应用程序都会存在活动。

​ 在使用Android Studio时,Android Studio将会为我们自动创建活动,它也可以自己手动创建活动,我来简单介绍一下手动创建一个活动的过程(只有大体流程,没有具体过程)。首先要创建一个Java项目,写一个自己的类,让这个类继承AppCompatActivity这个类,然后重写其中的onCreate()这个方法,再来创建一个布局,然后在AndroidMainifest文件中注册,这样一个活动就创建的差不多了。

​ 活动与活动之间应该有一个转换,我们应该可以从一个活动通过某个操作’跳转到另一个活动。在跳转活动时,需要使用Intent方法

Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);

​ 还可以通过Intent从一个活动给另一个活动传递数据。

活动的生命周期

​ Activity类中有7个回调方法,覆盖了活动生命周期的每一个环节。

​ onCreate()在活动第一次被创建时调用

​ onStart()在活动由不可见变为可见时调用

​ onResume()活动在准备好和用户进行交互时调用

​ onPause()在系统准备去启动或者回复另一个活动时调用

​ onStop()在活动完全不可见时调用

​ onDetroy()在活动被销毁之前调用

​ onRestart()在活动由停止状态变为运行状态时调用。

活动的启动模式

standard

​ standard是活动默认的启动模式,当每启动一个活动,他就会在返回栈中入栈,并处于栈顶位置。在这种模式下,系统不会在乎是否在返回栈中存在,每次启动活动就会创建一个新的实例。

singleTop

​ 当活动启动模式被指定为singleTop,在启动活动时如果发现返回栈顶已经是该活动,则认为可以直接使用它,不会再创建新的活动实例。这样解决了如果在栈顶的活动不会被创建。

singleTask

​ 每次启动活动时,系统就会先检查返回栈中是否存在该活动的实例,如果已有该活动的实例,并把在这个活动之上的所有活动出栈,如果没有就会创建一个新的活动实例。

singleInstance

​ 如果某个活动为这种启动模式,活动会启动一个新的返回栈来管理这个活动。这样就可以让其他的应用程序来访问这个活动。

UI设计

常用控件

TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="hello"
android:gravity="center"
android:textSize="24sp"
android:textColor="#00ff00"

​ width和height为布局中极为重要的两个参数,一个是控制宽,一个是控制高。

​ wrap_content指由控件内容控制其大小,match_parent是由父布局决定该控件的大小。

​ id为给当前控件定义了一个唯一标识符。

​ text为TextView中显示的文本内容。

​ textSize为字体大小,textColor为字体的颜色,gravity为对齐方式。

Button
android:textAllCaps="false"

​ 在Button中,textAllCaps能够使Button上的字母按照你所需要的大小写来’实现。不会让其全部变为大写。

EditText

​ 这是一个与用户交互的重要控件,它允许用户在控件内输入和编辑内容,并可以在程序中对这些内容进行处理。

android:hint="hello"
android:maxLines="2"

​ hint可以在编辑区域内出现一个提示语句,当输入文字后,这些内容将会消失。

​ maxLines能够控制编辑区的最大行数为两行。

ImageView
android:src="@drawable/img_1"

​ 这个控件是显示一个图片,drawable指的是文件夹,后面是文件夹里面的文件名。

ProgressBar

​ 这个控件是用于显示一个进度条,表示程序正在加载一些数据。

​ Android所有的空间都具备一个可见属性。其有三种形式:visible、invisible、gone。visible是指可见的,也是默认值。invisible可以理解为透明状态,但仍然占据这原来的位置和大小。gone可以理解为消失了,看不见并且不占空间。

AlertDialog

​ 这个控件主要是在当前界面弹出一个对话框,对话框是置于所有界面元素之上的,能够屏蔽掉其他软件的交互能力,因此一般都是用于提示重要的内容或者警告信息。

ProgressDialog

​ ProgressDialog与上一个控件比较相似,都是弹出一个对话框,能够屏蔽掉其他控件的交互能力。但他显示的是一个进度条,一般用于一些用时大的操作时让用户等待。

四种布局

include layout="@layout/title"

​ 这是导入布局的方法。

线性布局

​ LinearLayout称作线性布局,是一种非常常用的布局方式。这种布局一般有两种排列方式,一种是horizontal,这种是默认的,呈水平排列的,如果是在orientation中指定vertical就会呈垂直排列。

android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"

​ 上面这种方法就会平分父布局width这个方向上的空间,如果再有一个控件,它的layout_weight如果也指定为1,那么他们每个控件占父布局的1/2。

相对布局

​ RelativeLayout称为相对布局。相对布局顾名思义就是根据原有的控件或者布局来进行布局。

帧布局

​ FrameLayout称为帧布局,这种布局默认将全部控件都放在左上角,如果不改变他的位置,将会重叠放置。这个布局方式定位方式比较少,所以应用的场景也会比较少。

百分比布局
implementation 'androidx.percentlayout:percentlayout:1.0.0'

​ 要使用这种布局,实现要导入上面这个依赖库才能够去使用这种布局方式,当在gradle文件中导入上面的库时,要点击Sync Now。百分比布局对RelativeLayout和FrameLayout两种布局进行了拓展。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. Android 的基本概念 Android一个开源的操作系统,主要用于移动设备,如智能手机、平板电脑等。它基于 Linux 内核,提供了丰富的应用程序框架和 API,支持多种开发语言,如 Java、C/C++、Kotlin 等。 Android 应用程序由多个组件组成,包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)等。这些组件可以组合在一起,形成复杂的应用程序。 2. Android 应用程序开发 Android 应用程序开发主要使用 Java 编程语言和 Android SDK。开发工具包括 Android Studio、Eclipse 等。 Android 应用程序的结构包括布局文件、资源文件、Java 代码和清单文件等。布局文件用于定义应用程序的用户界面,资源文件包括图像、声音、样式、主题等,Java 代码实现应用程序的逻辑,清单文件描述应用程序的组件和权限等信息。 3. Android 应用程序的调试和测试 Android 应用程序的调试和测试可以使用 Android Studio 提供的调试工具,包括断点调试、日志记录等。还可以使用模拟器或真实设备进行测试。 4. Android 应用程序的发布 发布 Android 应用程序需要进行签名和打包操作,签名用于验证应用程序的身份和完整性,打包将应用程序打包成 APK 文件,可以上传到应用商店进行发布。 5. Android 应用程序的优化 Android 应用程序的优化包括优化布局、资源、代码和网络等方面,以提高应用程序的性能和用户体验。其中,布局优化包括使用布局最优化算法、使用自定义视图等;资源优化包括压缩资源、使用向量图形等;代码优化包括使用异步任务、使用缓存等;网络优化包括使用数据压缩、使用本地存储等。 6. Android 开发的挑战 Android 开发面临的挑战包括设备碎片化、安全问题、性能问题等。设备碎片化指的是不同设备的屏幕尺寸、分辨率、操作系统版本等不同,需要对应用程序进行适配;安全问题指的是应用程序需要保证用户数据的安全和隐私;性能问题指的是应用程序需要保证快速响应和流畅运行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值