android常用组件,android的核心组件

Android的四大组件是哪些,它们的作用

Android四大组件分别为activity、service、content provider、broadcast receiver。

濮阳县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

一、android四大组件详解

1、activity

(1)一个Activity通常就是一个单独的屏幕(窗口)。

(2)Activity之间通过Intent进行通信。

(3)android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不识别也不执行该Activity。

2、service

(1)service用于在后台完成用户指定的操作。service分为两种:

(a)started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。

(b)bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。

(2)startService()与bindService()区别:

(a)started service(启动服务)是由其他组件调用startService()方法启动的,这导致服务的onStartCommand()方法被调用。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。因此,服务需要在完成任务后调用stopSelf()方法停止,或者由其他组件调用stopService()方法停止。

(b)使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止,大有“不求同时生,必须同时死”的特点。

(3)开发人员需要在应用程序配置文件中声明全部的service,使用标签。

(4)Service通常位于后台运行,它一般不需要与用户交互,因此Service组件没有图形用户界面。Service组件需要继承Service基类。Service组件通常用于为其他组件提供后台服务或监控其他组件的运行状态。

3、content provider

(1)android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。

(2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处是统一数据访问方式。

(3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。这是不同应用程序间共享数据的唯一方式,因为android没有提供所有应用共同访问的公共存储区。

(4)开发人员不会直接使用ContentProvider类的对象,大多数是通过ContentResolver对象实现对ContentProvider的操作。

(5)ContentProvider使用URI来唯一标识其数据集,这里的URI以content://作为前缀,表示该数据由ContentProvider来管理。

4、broadcast receiver

(1)你的应用可以使用它对外部事件进行过滤,只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力,例如闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

(2)广播接收者的注册有两种方法,分别是程序动态注册和AndroidManifest文件中进行静态注册。

(3)动态注册广播接收器特点是当用来注册的Activity关掉后,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。也就是说哪怕app本身未启动,该app订阅的广播在

Android View知识

1, View是除了Android四大组件外,最常用的东西

2,什么是View:

View是android中所有控件的父类,比如TextView,LinearLayout等等

其中LinearLayout继承自控件组ViewGroup,当然ViewGroup也是继承自View

3,View的位置

top:左上角纵坐标

left:左上角横坐标

right:右下角横坐标

bottom:右下角纵坐标

如下图:

4,view的MotionEvent和TouchSlop

4.1MotionEvent:

ACTION_DOWN:手指接触屏幕

ACTION_MOVE:手指在屏幕上滑动

ACTION_UP:手指离开屏幕。

4.2TouchSlop

处理滑动时的过滤条件,简单来说就是,手指在屏幕上的一次操作算不算滑动。

系统默认值:ViewConfiguration.get(context).getScaledTouchSlop()

5,getX()getY()和getRawX()和getRawY()

前两者相对于父控件View 后两者相对于手机屏幕

6,VelocityTracker,GestureDetector,Scroller

6.1VelocityTracker:滑动速度,在view的ontouch事件中,查看速度

6.2 GestureDetector:手势判断,比如长按,点击,双击等,很少用,可以用 ontouch事件来代替

6.3Scroller:弹性滑动对象,实现view的位置改变等

7,原始滑动方式

7.1:ScrollerTo和Scroller By()

实现简单 但是只能滑动view里面的子元素

7.2:改变view参数

实现复杂,但是如果view有交互,这种方式比较好

7.3:动画

适用于没有交互的,或者动画复杂的view的滑动

8View的事件分发:

8.1:Activity-window-View

8.2:view中是从父到子,也就是从外到内,都不处理,返回给最顶级

8.3:ViewGroup默认不拦截任何事件,默认返回false

8.4:分发方法:dispatchTouchEvent,OnInterceptTouchEvent,OnTouchEvent

dispatchTouchEvent:分发

OnInterceptTouchEvent:拦截

OnTouchEvent:处理点击事件

Android 一一 简述Android四大组件

应用程序中,一个Activity就相当于手机屏幕,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序可以包含许多活动,比如事件的点击,一般都会触发一个新的Activity。

应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

内容提供者主要用于在不同应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。只有需要在多个应用程序间共享数据时才需要内容提供者。例如:通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处:统一数据访问方式。

是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要长期运行的任务(一边打电话,后台挂着QQ)。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务扔然能够保持正常运行,不过服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉后,所有依赖于该进程的服务也会停止运行(正在听音乐,然后把音乐程序退出)。

关于Android界面组件的基本用法

1.文本框(TextView)和编辑框(EditText)

文本框(TextView)不允许用户编辑文本内容,而编辑框(EditText)允许用户编辑文本内容

2.按钮(Button)和图片按钮(ImageButton)

Button显示文字,ImageButton显示图片。

为ImageButton指定android:text属性没用,不会显示文字

可以指定android:background为按钮增加背景图片,但这图片是固定的

可以指定android:src为图片按钮增加图片属性

其实,src才是设置图标,而background只是设置背景。

如果控件的大小是100 100 图片资源是80 80的话,那么用src,图片就会居中显示,如果使用background那么图片就会被拉伸充满控件。

重要的是,background是底层的图片资源,src是覆盖在background上面的资源,他们可以叠加使用,实现选中的效果。

3.单选按钮(RadioButton)和复选框(CheckBox)

多了一个android:checked属性,用于指定初始时是否被选中

4.计时器组件Chronometer用法

红色字体表示常用的方法

5.图像视图(ImageView)

它支持属性android:scaleType setScaleType(ImageView.ScaleType)

matrix(ImageView.ScaleType.MATRIX):使用matrix方式进行

fixXY(ImageView.ScaleType.FIX_XY):对图片横向纵向独立缩放,会改变纵横比

fitStart(ImageView.ScaleType.FIT_START):保持纵横比,图片较长的边长与ImageView相应的边长相等,缩放后放在左上角

fitCenter(ImageView.ScaleType.FIT_CENTER):保持纵横比,图片较长的边长与ImageView相应的边长相等,缩放后放在中央

fitEnd(ImageView.ScaleType.FIT_END):保持纵横比,图片较长的边长与ImageView相应的边长相等,缩放后放在右下角

center(ImageView.ScaleType.CENTER):放中间,不缩放

centerCrop(ImageView.ScaleType.CENTER_CROP):保持纵横比,使图片能完全覆盖ImageView

centerInside(ImageView.ScaleType.CENTER_INSIDE):保持纵横比,使ImageView能完全显示图片

6.spinner的功能和用法

如果可以确定spinner里面的列表项,那么直接在/res/layout/main.xml里面指定

然后在/res/value/string.xml里面指定

如果不确定里面的列表项,那么必须要提供一个Adapter,这个Adapter负责决定Spinner列表每项的内容

7.日期、时间选择器(DatePicker和TimePicker)

8.自动完成文本框(AutoCompleteTextView)

比普通文本框多了一个功能:当用户输入一定字符后,自动完成文本框会显示一个下拉菜单,供用户从中选择,当用户选择某个菜单后,组件会按用户选择自动填写该文本框

使用该组件很简单,只要为它设置一个Adapter,该Adapter封装了AutoCompleteTextView预设的提示文本

9.进度条(ProgressBar)

通过style属性可以为ProgressBar指定风格。该属性可以有如下的属性值:

1.@android:style/Widget.ProgressBar.Horizontal 水平进度条

2.@android:style/Widget.ProgressBar.Inverse 不断跳跃、旋转画面的进度条

3.@android:style/Widget.ProgressBar.Large 大进度条

4.@android:style/Widget.ProgressBar.Large.Inverse不断跳跃、旋转画面的大进度条

5.@android:style/Widget.ProgressBar.Small 小进度条

6.@android:style/Widget.ProgressBar.Small.Inverse不断跳跃、旋转画面的小进度条

ProgressBar提供如下方法来操作进度

1.setProgress(int) 设置进度的完成百分比

2.incrementProgressBy(int) 设置进度条的增加或减少。参数为正增加,参数为负减少

10.选项卡(TabHost)

TabHost仅仅只是一个简单的容器,它提供如下方法

1.newTabSpec(String tag) 创建选项卡

2.addTab(TabHost.TabSpec tabSpec) 添加选项卡

使用TabHost的一般步骤为:

• A. 在界面中定义TabHost组件,并为该组件定义该选项卡的内容

• B. Activity应该继承TabActivity

• C. 调用TabActivity的getTabHost()来获取TabHost对象

• D. 通过TabHost对象的方法来创建选项卡、添加选项卡

选项卡主要由TabHost、TabWidget、FrameLayout3个组件组成,三者缺一不可,想象一下选项卡的特点,多个卡重叠在一起,所以用FrameLayout即帧布局是必要的。另外需要注意的是TabHost、TabWidget、FrameLayout三个组件的android:id必须使用系统默认的名称,而不能自己随意定义,否则会出错。

11.图像切换器(ImageSwitcher)

12.网格视图(GridView)

使用GridView一般指定numColumn大于1,否则取默认值为1.那么GridView就变成了ListView

属性android:stretchMode支持如下属性

1.none 不拉伸

2.spacingWidth 仅拉伸元素之间的间距

3.spacingWidthUniform 表格、元素之间的间距一起拉伸

4.columnWidth 仅拉伸表格

13.画廊视图(Gallery)(现在已经被弃用了,不过还是列出来吧)

Gallery用法很简单——为它提供一个内容Adapter,该Adapter的getView方法所返回的View可作为Gallery的列表项。可以通过OnItemSelectedListener监听选择项的改变

14.列表试图(ListView和ListActivity)

1.创建ListView由两种方式:

2.直接使用ListView进行创建

让Activity继承ListActivity(继承了ListActivity的类无需调用setContentView()来显示页面,可以直接设置适配器)

一旦获得ListView后,就要创建显示的列表项了。需要借助内容Adapter,内容Adapter负责提供需要显示的列表项

创建ArrayAdapter时必须指定一个textViewResourceId,该参数决定每个列表项的外观

1.simple_list_item_1 每个列表项是普通的TextView

2.simple_list_item_2 每个列表项是普通的TextView(字体略大)

3.simple_list_item_checked 每个列表项是已勾选的列表项

4.simple_list_item_multiple_choice 每个列表项是带多选框的文本

5.simple_list_item_single_choice 每个列表项是带多单选按钮的文本

15.使用AlertDialog

1.创建AlertDialog.Builder对象,该对象是AlertDialog的创建器

2.调用AlertDialog.Builder方法为对话框设置图标、标题等

3.调用AlertDialog.Builder的create()方法创建AlertDialog对话框

4.调用AlertDialog的show()方法显示对话框

16.使用Toast显示提示框

步骤如下:

• 调用Toast构造器或makeText方法创建Toast对象

• 调用Toast方法来设置该消息的对齐方式等

• 调用Toast的show()方法显示出来

• Toast toast = Toast.makeText(ToastTest.this, "信息", Toast.LENGTH_LONG).show();

17.Notification(一般显示网络状态、电池状态、时间等)

使用Notification发送Notification步骤:

• 调用getSystemService(NOTIFICATION_SERVICE)方法获取系统的Notification Manager服务

• 通过构造器创建一个Notification对象

• 为Notification设置属性

• 通过Notification Manager发送Notification

Android、iOS系统架构

Android一共有四种常用的组件:Activity、Service、ContentProvider、BroadcastReceiver

当运行我们的Android应用程序时,Android操作系统首先会去找我们的AndroidManifest.xml这个文件,这个文件是我们应用程序的主配置文件,因为我们一个应用可能有多个Activity,那么首先展示那个Activity呢?这个主配置文件就定义了当前这个应用的默认所加载的Activity对象,找到Activity对象后,就会调用其onCreate()方法,这个方法主要就是用来加载我们的布局文件,通过setContentView()方法可以来加载我们指定的布局文件,最后根据布局文件中的各个控件显示在我们的屏幕上。这个就是我们的Activity的启动流程。

网页标题:android常用组件,android的核心组件
文章源于:https://www.cdcxhl.com/article16/dsgcgdg.html

成都网站建设公司_创新互联,为您提供动态网站企业建站网站收录用户体验网站制作标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司