【安卓开发学习笔记(一)】 您所在的位置:网站首页 imageview属性scaleType 【安卓开发学习笔记(一)】

【安卓开发学习笔记(一)】

2023-06-11 07:37| 来源: 网络整理| 查看: 265

文章目录 一、开发环境搭建二、简单控件安卓基本控件及其属性 1. 文本显示2. 按钮3. 常用布局(1) 线性布局LinearLayoutlayout_gravity和gravity有什么区别 (2) 相对布局RelativeLayout(3) 网格布局GridLayout 4. 图像显示(1) 图像的缩放问题:(2) 图像按钮ImageButton 三、Activity1. Activity的启动和结束2. Activity的生命周期3. Activity的启动模式Activity启动模式是什么(1) 静态设置:(2) 动态设置: 4. Activity之间传递信息Intent有什么作用Intent组成部分(1) 显式Intent和隐式Intent(2) 向下一个Activity发送消息:(3) 向上一个Activity返回消息: 5. Activity获取一些附加信息(1) 获取资源信息:(2) 获取元数据信息:补充Bundle对象Override有什么用?安卓开发R是什么意思

一、开发环境搭建

在进行Android应用程序的开发过程中,需要做好以下几个方面的工作:

安装Java JDK:需要安装Java JDK并配置环境变量。下载Android Studio:Android Studio是官方的Android开发IDE,可以从官网下载最新版本。安装Android模拟器或连接Android设备:在进行应用程序开发时,需要使用Android模拟器或者连接真实的Android设备进行调试。 二、简单控件

在安卓开发中,控件(View)是指构成应用程序UI界面的基本元素,如TextView、EditText、Button等。Android系统提供了大量的预定义控件,可以用于构建各种应用程序的UI界面。

控件是应用程序与用户进行交互的主要手段,通过控件,用户可以输入数据、进行操作、查看信息等。每个控件都有自己的属性和行为,可以通过设置这些属性和行为来控制控件的外观和行为。

在Android中,控件可以通过XML布局文件或Java代码创建和设置属性。例如,在XML布局文件中定义一个TextView控件:

在上述代码中,我们定义了一个id为textview的TextView控件,并设置了其宽度为match_parent、高度为wrap_content、文本为“Hello World!”等属性。

在 Java 代码中获取 TextView ,可以使用 findViewById 方法:

TextView textView = findViewById(R.id.textview);

总之,在安卓开发中,控件(View)是指构成应用程序UI界面的基本元素,它们用于展示信息、接收用户输入、执行操作等。开发者可以通过设置控件的属性和行为来控制它们的外观和行为。

安卓基本控件及其属性

在安卓开发中,有很多常用的基本控件,这些控件可以用于构建应用程序的用户界面。下面是一些常用的基本控件及其属性:

TextView:用于显示文本信息,常用属性有: text:设置文本内容;textSize:设置文本大小;textColor:设置文本颜色;textStyle:设置文本样式(粗体、斜体等);gravity:设置文本对齐方式;fontFamily:设置文本字体家族等。 EditText:用于允许用户输入文本信息,常用属性有: hint:设置提示文本;textSize:设置文本大小;textColor:设置文本颜色;maxLength:设置最大长度;inputType:设置输入类型;password:设置是否为密码框等。 Button:用于触发事件,常用属性有: text:设置按钮文本;textSize:设置文本大小;textColor:设置文本颜色;backgroundColor:设置背景颜色;onClick:设置点击事件等。 ImageView:用于显示图像,常用属性有: src:设置图像资源;scaleType:设置图片缩放类型;adjustViewBounds:设置图片大小是否自适应等。 RadioButton:用于单选,常用属性有: text:设置单选框文本;checked:设置单选框是否被选中;onCheckedChanged:设置选中状态改变事件等。 CheckBox:用于多选,常用属性有: text:设置多选框文本;checked:设置多选框是否被选中;onCheckedChanged:设置选中状态改变事件等。 Spinner:用于选择器,常用属性有: entries:设置可选项列表;prompt:设置提示文本;onItemSelected:设置选项选择事件等。

这些控件都提供了许多属性来帮助我们控制其外观和行为。例如,可以使用 android:textColor 属性为文本着色,使用 android:background 属性设置控件的背景颜色等。

1. 文本显示

TextView是Android应用程序中最常用的一个控件,用于显示文本内容。可以设置文本的颜色、背景、字体等属性,代码如下:

Copy Code

核心知识点: TextView控件的基本属性和用法。

2. 按钮

Button是Android应用程序中常用的控件,用户点击按钮可以触发相应的事件。可以设置按钮的文字、背景、事件监听器等属性,代码如下:

核心知识点: Button控件的基本属性和用法。

3. 常用布局 (1) 线性布局LinearLayout

线性布局可以让组件按照水平或竖直方向排列。可以设置方向、对齐方式、权重等属性,代码如下:

核心知识点: LinearLayout布局的基本属性和用法,包括方向、对齐方式、权重等。

layout_gravity和gravity有什么区别

layout_gravity 和 gravity 都是用于控制控件在父容器中的对齐方式的属性。它们之间的区别在于作用对象不同。

layout_gravity:作用于子控件,用于决定该子控件在父容器中的对齐方式。gravity:作用于父容器,用于决定其内部所有子控件的对齐方式。

layout_gravity 只能用于 LinearLayout 和 FrameLayout 中的子控件,而 gravity 只能用于 LinearLayout 和 RelativeLayout 等布局容器。

具体来说,layout_gravity 可以将子控件的位置进行微调或对齐处理,可以设置在水平居中、垂直居中、左对齐、右对齐等各种方向,同时也可以使用 fill 的参数来指定子控件占据整个父容器的宽度或高度。而 gravity 属性是用于控制容器内部所有子控件的对齐方式,包括水平居中、垂直居中、左对齐、右对齐等各种方向。

总之,使用 layout_gravity 可以调整子控件在父容器中的位置,尤其适合于 LinearLayout 和 FrameLayout 这种只有一个子控件的容器;而使用 gravity 可以控制容器内所有子控件的位置和对齐方式,适用于任何布局容器。

(2) 相对布局RelativeLayout

相对布局可以让组件之间按照相对位置排列。可以设置组件之间相对位置、对齐方式等属性,代码如下:

核心知识点: RelativeLayout布局的基本属性和用法,包括相对位置、对齐方式等。

(3) 网格布局GridLayout

网格布局可以让组件按照网格的形式排列,可以指定行数和列数。可以设置每个单元格的填充方式、对齐方式等属性,代码如下:

核心知识点: GridLayout布局的基本属性和用法,包括行数、列数、单元格填充方式等。

4. 图像显示 (1) 图像的缩放问题:

在Android开发过程中,经常会涉及到图像的显示问题。为了让图像在不同的设备上显示效果一致,需要进行缩放处理。可以通过设置ImageView的ScaleType属性、开启硬件加速、设置BitmapFactory.Options等方式来进行图像缩放,代码如下:

核心知识点: 图片缩放的实现方式,包括设置ImageView的ScaleType属性、使用硬件加速、设置BitmapFactory.Options等。

(2) 图像按钮ImageButton

图像按钮是一种带有图像的按钮控件,可以用于处理用户点击事件。可以设置按钮的图像资源和事件监听器等属性,代码如下:

核心知识点: ImageButton的基本属性和用法。

三、Activity 1. Activity的启动和结束

在Android应用程序中,Activity是应用程序的基本组成单元,每个Activity都是一个独立的窗口。可以通过Intent来启动和结束Activity,代码如下:

// 启动Activity Intent intent = new Intent(MainActivity.this, TargetActivity.class); startActivity(intent); // 结束Activity finish(); 2. Activity的生命周期

在Android应用程序中,每个Activity都有自己的生命周期,包括onCreate、onStart、onResume、onPause、onStop、onDestroy等阶段。在这些阶段中,可以进行不同的操作来响应用户的行为,代码如下:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override protected void onStart() { super.onStart(); // 进行一些初始化操作 } @Override protected void onResume() { super.onResume(); // 继续执行之前的操作 } @Override protected void onPause() { super.onPause(); // 暂停执行操作 } @Override protected void onStop() { super.onStop(); // 停止执行操作 } @Override protected void onDestroy() { super.onDestroy(); // 销毁Activity } 3. Activity的启动模式 Activity启动模式是什么

Activity启动模式是指在Android系统中通过Intent启动一个Activity时,系统如何处理该Activity实例的创建和启动。Android提供了四种不同的Activity启动模式:standard、singleTop、singleTask和singleInstance。

standard模式(默认模式):每次启动Activity都会创建该Activity的一个新实例,并且放入任务栈(Task stack)的顶部。singleTop模式:如果新启动的Activity已经位于任务栈的顶部,则不会创建新的实例,而是调用该Activity的onNewIntent()方法。如果新启动的Activity不在任务栈的顶部,则会创建新的实例并放到任务栈栈顶。singleTask模式:系统在启动该Activity之前会先检查是否存在该Activity的实例,如果存在则直接调用该实例的onNewIntent()方法并把该实例移动到任务栈的顶部。如果不存在,则创建新的实例并放到任务栈栈顶。singleInstance模式:该模式下的Activity只能单独位于一个任务栈中,且在该任务栈中不存在其他Activity。当系统要启动该Activity时,会新建一个任务栈并将该Activity实例放入该任务栈中。即使从其他应用程序中启动该Activity,也会将其放入单独的任务栈中。 (1) 静态设置:

在AndroidManifest.xml文件中设置,可以指定Activity的启动模式为standard、singleTop、singleTask或singleInstance,代码如下:

(2) 动态设置:

在调用startActivity方法时可以指定启动模式,可以用Intent.FLAG_ACTIVITY_NEW_TASK、Intent.FLAG_ACTIVITY_CLEAR_TOP等标志位来指定启动模式,代码如下:

// singleTask Intent intent = new Intent(MainActivity.this, TargetActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); // singleInstance Intent intent = new Intent(MainActivity.this, TargetActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_INSTANCE); 4. Activity之间传递信息 Intent有什么作用

Intent是Android开发中非常重要的一个类,用于在不同组件(Activity、Service、BroadcastReceiver)之间传递消息和执行操作。Intent主要有以下几种作用:

启动Activity:可以通过Intent启动一个Activity,即让用户跳转到另一个页面或应用。启动Service:可以通过Intent启动一个Service,即在后台执行一些耗时任务或在后台持续运行的服务。发送广播:可以通过Intent发送一个广播以通知其他组件,或者接收其他组件发送的广播并做出相应处理。携带数据:可以通过Intent携带数据,在不同组件之间传递数据,比如Activity之间传递参数。执行操作:可以通过Intent执行一些系统操作,比如打开浏览器、发送短信等。 Intent组成部分

Intent由两个主要组成部分构成:动作(Action)和数据(Data)。

动作(Action):描述要执行的操作,可以是应用程序内部定义的常量或者是系统定义的常量。比如ACTION_VIEW表示查看一个数据,ACTION_SEND表示发送一条消息。数据(Data):指定传递的数据,可以是一个URI、一个文本或者其他类型的数据。URI可以是一个文件路径、网址等,可以通过setData()方法设置。

除了这两个主要的组成部分,Intent还包括多个可选的属性(Extras),比如传递给目标组件的附加信息、标志位等。可以使用putExtra()方法将额外数据添加到Intent中。此外,Intent的组件(Component)也是一个可选属性,用于指定要启动的Activity或Service组件的完全限定名。

(1) 显式Intent和隐式Intent 显式Intent:显式Intent是指明了要启动的Activity名字的Intent。可以通过setClass等方法来设置,代码如下: Intent intent = new Intent(MainActivity.this, TargetActivity.class); startActivity(intent); 隐式Intent:隐式Intent是没有指定要启动的Activity名字,而是指定了相应的Action或Category。例如,可以通过Intent.ACTION_VIEW来启动系统的浏览器,代码如下: Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com")); startActivity(intent); (2) 向下一个Activity发送消息:

可以通过putExtra等方法来向下一个Activity传递数据,代码如下:

Intent intent = new Intent(MainActivity.this, TargetActivity.class); intent.putExtra("key", "value"); startActivity(intent); (3) 向上一个Activity返回消息:

可以通过setResult等方法来向上一个Activity返回结果,代码如下:

Intent intent = new Intent(); intent.putExtra("key", "value"); setResult(Activity.RESULT_OK, intent); finish(); 5. Activity获取一些附加信息 (1) 获取资源信息:

可以通过Context.getResources()等方法获取资源信息,代码如下:

String appName = getResources().getString(R.string.app_name); int iconId = getResources().getIdentifier("app_icon", "drawable", getPackageName()); (2) 获取元数据信息:

可以通过PackageManager.getApplicationInfo()等方法获取元数据信息,代码如下:

ApplicationInfo appInfo = getApplicationInfo(); Bundle metaData = appInfo.metaData; String versionName = metaData.getString("versionName"); 补充 Bundle对象

在Android中,Bundle是一种用于存储和传递数据的对象。它可以将多个不同类型的数据打包成一个整体,然后在不同组件之间进行传递。

通常情况下,我们使用Bundle对象来传递数据给Activity或者Service等组件。比如在Activity之间传递数据,可以在启动目标Activity之前,将数据打包成Bundle对象,然后通过Intent的putExtras()方法添加到Intent中,最后再启动目标Activity。例如:

Intent intent = new Intent(this, TargetActivity.class); Bundle bundle = new Bundle(); bundle.putString("name", "binjie09"); bundle.putInt("age", 25); intent.putExtras(bundle); startActivity(intent);

在上面的代码示例中,我们首先创建了一个Intent对象,并指定了目标Activity为TargetActivity。然后,创建了一个Bundle对象,并将两个数据项"name"和"age"分别作为key-value对存储到Bundle对象中。最后,将Bundle对象添加到Intent中,并通过startActivity()方法启动目标Activity。

在目标Activity中,我们可以通过getIntent()方法获取传递过来的Intent对象,在从Intent对象中获取Bundle数据并解析。例如:

Bundle bundle = getIntent().getExtras(); String name = bundle.getString("name"); int age = bundle.getInt("age");

在上面的代码示例中,我们通过getIntent()方法获取传递过来的Intent对象,然后从Intent对象中获取Bundle数据,并通过getString()和getInt()方法获取数据项"name"和"age"的值。

总之,Bundle对象是一种非常便捷的数据传递方式,在多个组件之间传递数据时非常常用。

Override有什么用?

在Java中,Override是一个关键字,用于标识某个方法是对父类中同名方法的重写(覆盖)。

重写(覆盖)是指子类定义了一个与父类中同名、同参数列表、同返回类型的方法,并且该方法的访问权限不低于父类中同名方法的访问权限。当子类实例调用该方法时,将优先调用子类中的方法,而不是调用父类中的同名方法。

Override关键字的使用具有以下两个好处:

帮助避免犯错:如果我们需要重写父类的某个方法,但是因为拼写或者参数列表等原因,导致子类中的方法名称、参数类型或数量与父类中的不一致,那么该方法就不会被正确地重写,这时编译器会提示错误信息,帮助我们避免此类犯错。提高可读性:如果我们在子类中没有使用Override关键字来重写父类中的方法,那么在代码阅读过程中,很难判断子类中的方法是继承而来的还是新添加的。因此,使用Override关键字可以清楚地表明该方法是对父类中同名方法的重写,提高了代码可读性。 安卓开发R是什么意思

在安卓开发中,R是一个自动生成的Java类,用于表示资源(如布局、字符串、图像等)的唯一ID。在应用程序中,我们可以通过这个ID来访问并使用应用程序中的各种资源。

当我们在开发安卓应用程序时,经常需要使用到各种资源,如布局文件、图片、字符串等。为了方便使用这些资源,在编译过程中,编译器会自动将这些资源转换为相应的资源ID,并生成一个名为R.java的Java类。

在R.java类中,每个资源都有一个唯一的ID,可以通过类似R.layout.main、R.string.hello_world、R.drawable.icon等方式来访问。例如,在Java代码中设置一个TextView的布局时,可以通过以下方式获取布局文件的ID:

setContentView(R.layout.activity_main);

在上述代码中,R.layout.activity_main表示布局文件activity_main.xml对应的唯一ID,我们可以通过这个ID来加载并使用该布局文件。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有