Android 3.0~4.0新特性

一、3.0增加了哪些新特性

1.Fragment
引入:android在3.0之后引入了fragment。Fragment意思是碎片,因为碎片所以能更灵活的拼装和管理。
兼容方案:android-support-v4.jar
使用技巧:如果Fragment需要向下兼容,和Fragment相关的类都需要导入v4包下的,如:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction

2.ActionBar
引入:替代传统的TitleBar,主要针对于平板开发。对于Android平板设备来说,屏幕更大使用ActionBar可以扩展更多丰富的内容,方便操控。
主要包含功能
1)显示选项菜单
2)提供标签页的切换方式的导航功能,可以切换多个fragment
3)提供下拉的导航条目
4)提供交互式活动视图代替选项条目
5)返回主页或返回上一页的导航操作。
**兼容方案:**actionbarsherlock,作为library
学习链接:http://zwkufo.blog.163.com/blog/static/2588251201132805532568/

3.Newwidget and layout

①ViewPager。
兼容方案:android-support-v4.jar
使用技巧:

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" >

        <android.support.v4.view.PagerTitleStrip
            android:id="@+id/pagertitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top" >
        </android.support.v4.view.PagerTitleStrip>
    </android.support.v4.view.ViewPager>

</RelativeLayout>

②GridLayout
③TextureView
④Switch

4.PropertyAnimation
在android 3.0之前,支持两种动画模式,Tween Animation and Frame Animation。在3.0之后引入了PropertyAnimation,为属性动画。在View Animation(Tween Animation)中,其改变的是View的绘制效果,真正的View的属性保持不变,比如无论你在对话中如何缩放Button的大小,Button的有效点击区域还是没有应用动画时的区域,其位置与大小都不变。而在Property Animation中,改变的是对象的实际属性,如Button的缩放,Button的位置与大小属性值都改变了。而且PropertyAnimation不止可以应用于View,还可以应用于任何对象。PropertyAnimation只是表示一个值在一段时间内的改变,当值改变时要做什么事情完全是你自己决定的。
兼容方案:android.support.v4
学习动画链接:http://blog.csdn.net/a15874647/article/details/7683073

5.Loader
装载器从android3.0开始引进。它使得在activity或fragment中异步加载数据变得简单。装载器具有如下特性:
它们对每个Activity和Fragment都有效。
他们提供了异步加载数据的能力。
它们监视数据源的一将一动并在内容改变时传送新的结果。
当由于配置改变而被重新创建后,它们自动重连到上一个加载器的游标,所以不必重新查询数据。
学习Loader的使用:http://blog.csdn.net/a15874647/article/details/7683330

6.System clipboard系统剪切板
Android 3.0中的剪切板进行了增强,本次可以支持除了纯文本外更多的内容,如,URL和Intent,对于剪切板类ClipboardManager仍然通过getSystemService(CLIPBOARD_SERVICE)来实例化,新增的ClipData类用于管理具体的复制对象,可以在SDK的android.content.ClipData.Item中找到。

参考:http://www.2cto.com/kf/201204/127934.html

7.支持拖拽
学习链接:http://blog.sina.com.cn/s/blog_4031190c01015vyj.html

8.新增组件
AdapterViewAnimator
AdapterViewFlipper
CalendarView
ListPopupWindow
StackView:继承自AdapterViewAnimator
NumberPicker :数字选择器,是新的日期和时间选择的组成部分
PopupMenu :弹出菜单

二、4.0新增了哪些新特性

网络:

  1. 支持企业vpn

社交网络:

  1. User Profile(机主的个人档案)

需要的权限:

READ_PROFILE:ContactsContract.Profile提供器提供读访问;

WRITE_PROFILE:ContactsContract.Profile提供器提供写访问;

  1. Invite Intent

INVITE_CONTACT intent 允许一个应用按照用户意愿,邀请一个联系人进入某个社会网络的行为。

如果应用允许接受此动作,需要在里添加INVITE_CONTACT

相机:

  1. 人脸识别 ,解锁

人脸识别功能得到应用,比如解锁,可以在设置之后自拍进行屏幕解锁.这个应用在API中也做了相应的改变:

Camera类,包括用于人脸检测和控制焦距和感光区的API 。

face detection (人脸检测)

人脸识别,不仅检测人脸特征,而且还检测眼睛和嘴巴。如果你想要使用你的相机来做人脸识别的程序,你必须使用setFaceDetectionListener方法来注册 Camera.FaceDetectionListener对象。然后,您可以启动camera surface ,并调用startFaceDetection方法开始检测人脸。

如果你实现了Camera.FaceDetectionListener接口,当系统检测到一个或者更多个人脸时,便会向所调用的接口回调onFaceDetection方法,包括一组Camera.Face 对象。

Camera.Face类的实例提供有关于人脸识别的各种各样信息,其中包括:1、一个相对与相机当前视野的所指定人脸边界的矩形框( Rect 对象)。2、一个1到100之间并用于人脸识别精确度的整数。每个所检测到的人脸,会分配独一无二的ID。当识别到眼睛和嘴巴时,都会生成一个 Point 对象。该对象指定眼睛或者嘴巴的空间位置。另外并不是所有设备都可以支持人脸识别,你应该先调用getMaxNumDetectedFaces()方法来保证返回的值大于0,说明你的设备是支持该技术的。当然,还有一些设备可以支持人脸识别,但是不支持眼睛和嘴巴的鉴定,在这种情况下,Camera.Face 对象为空值。

  1. 焦距和感光区域

照相机程序现在可以控制焦距和感光的白平衡以及自动曝光。 这两个功能使用新的Camera.Area类来指定照相所集中和所计算的出来的当前视图区域。Camera.Area类的实例定义该视图边界的矩形区域和面积比重。设置焦距或感光度之前,应首先调用getMaxNumFocusAreas()或getMaxNumMeteringAreas()方法。如果这些返回零,则该设备不支持相应的功能。

设置焦距调用setFocusAreas()方法;设置感光度调用setMeteringAreas()方法;这两种方法每次会返回包含所对应焦距或者感光度的Camera.Area对象列表(List)。例如,你可以实现一个功能,允许用户设置通过触摸一个预览区域,您再转化到重点领域Camera.Area对象和要求,重点放在该区域的场景,相机在现场的面积变化,在这一领域的重点或曝光将不断更新。

  1. 摄像头自动对焦

4.0可以启用连续自动对焦拍照。而为了使照相程序调用连续自动对功能, 需要传递FOCUS_MODE_CONTINUOUS_PICTURE参数到setFocusMode()方法中 。当准备拍摄照片,调用autoFocus()方法。Camera.AutoFocusCallback对象便立即收到一个回调来指示是否获得到了焦点。接受到回调值后,如果还需要重新自动对焦,则必须调用cancelAutoFocus()方法。连续自动对焦功能支持视频拍摄,使用FOCUS_MODE_CONTINUOUS_VIDEO参数。

  1. 其他新特性

在录制视频时,您可以调用takePicture()方法保存照片,同时不中断视频的拍摄。 但是,在这样做之前,你应该调用isVideoSnapshotSupported()方法来以确保硬件是否支持这个功能。

使用setAutoExposureLock()和setAutoWhiteBalanceLock()方法可以锁定自动曝光和白平衡来防止用户更改这些属性。

相机拍摄运行时,可以调用setDisplayOrientation()方法。 在以前的版本中,你只能在运行之前使用,但现在你可以在任何时候改变方向。相机广播意图

Camera.ACTION_NEW_PICTURE :这表明用户已经占据了新的照片。 内置的摄像头应用程序调用此广播,拍摄照片后,第三方的摄像头应用程序也应该拍摄照片后播出的这一意图。

Camera.ACTION_NEW_VIDEO :这表明用户已经占据了一个新的视频。内置摄像头的应用程序调用此广播后的视频记录和第三方的摄像头应用程序也应该拍摄视频后播放这一意图。

多媒体:

  1. Remote control client

新RemoteControlClient允许媒体播放器,使媒体播放器能够被远程控制,如设备锁定屏幕。媒体播放器还可以使遥控器上的显示目前正在播放的媒体,如进度信息和专辑封面的信息。

硬件加速:

从android 4.0开始,所有的窗口都会默认开启硬件加速。程序中得把targetSdkVersion和 minSdkVersion这两个值设置成14或者更高。通过硬件加速可以使用户体验到动画更流畅,滚动时更流畅,也会提高程序的整体的性能.

如果有必要,可以手动禁止硬件加速。在AndroidManifest文件中可以利用 hardwareAccelerated  属性来对个别个的元素或者元素禁止硬件加速。用户也可以在代码中对个别的View进行禁止硬件加速,如:

setLayerType(LAYER_TYPE_SOFTWARE).

事件:

  1. 悬停事件(用于有鼠标的设备)

MotionEvent类增加三个操作:

    ACTION_HOVER_ENTER

    ACTION_HOVER_EXIT

    ACTION_HOVER_MOVE
  1. 手写事件

MotionEvent增加getToolType()方法获得指针设备类型,有以下几种类型:

OOL_TYPE_UNKNOWN

TOOL_TYPE_FINGER(手指)

TOOL_TYPE_MOUSE (鼠标)

OOL_TYPE_STYLUS (手写笔)

TOOL_TYPE_ERASER(橡皮檫,具体什么东西还不清楚,还需要深入调研)

  1. 鼠标按钮

通过MotionEvent.getButtonState()可以获取鼠标或按钮的状态,定义了以下几种状态:

BUTTON_PRIMARY (鼠标左键)

BUTTON_SECONDARY (鼠标右键)

BUTTON_TERTIARY (鼠标中键)

BUTTON_BACK

BUTTON_FORWARD

三、4.1新增了哪些新特性

增强通知栏:

新版系统为开发者提供了三种不同的通知样式,最高可以达到256dp,用来显示更多信息。新版通知在原有的信息提示,快速进入基础上,增加更多交互操作。可以直接查看信息、图片、提醒、E-mail等内容,无需进入应用程序就可以进行一键回拨、一键分享等操作。

当有新通知时,之前旧通知会自动收回为简洁样式。用户可以通过双指手势展开和收回相应的通知条,以便于直接查看更多信息。
参考文章:http://blog.csdn.net/shanpengfei77/article/details/8074167

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值