`
xsuo
  • 浏览: 118926 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Android M5 新特性

阅读更多
Android SDK M5 Release - API Changes Overview

AndroidManifest.xml


在AndroidManifest.xml文件,这里有几处改动。当移植一个应用程序到M5下,它会立即提醒你去修改!就像你下面看到的这些:
在AndroidManifest.xml文件中,参数为“class=”全部被”android:name=”替代。
在AndroidManifest.xml文件中,参数为”android:value=”全部被”anroid:name=”替代.
在AndroidManifest.xml文件中,参数为”android:id”全部被”android:name=”替代。
在<intent-filter>里,提供了<type>,<scheme>,<authority>和<path>标签,现在被单个的<data>标签和其使用属性:android:mimeType, android:scheme, android:host
和 android:path所各自替代.这里还增加了一个很有用的新属性android:port.如果不做改变,intent-fiters将不能够正常工作.

例子:
复制内容到剪贴板
代码:

<intent-filter>
<action android:value="android.intent.action.INSERT" />
<category android:value="android.intent.category.DEFAULT" />
<type android:value="vnd.android.cursor.dir/vnd.google.note"
</intent-filter>

替代以后:
复制内容到剪贴板
代码:
<intent-filter>
<action android:name="android.intent.action.INSERT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
</intent-filter>


Layout

在你正常工作之前,Layout 下的文件也需要更改动:
主要改动是:”id=”被android:id=替换,并且所有的”id=”都要改动.

Adapters

android.widget.SimpleCursorAdapter被进行改良:
现在支持ImageViews.
用户可以在Cursor里的指定任意一列,来把Cursor转换成String
做为选择,用户还能够直接用CursorToStringConverter进行转换.
FilterQueryProvider 能够通过这种模式产生过滤性查询,以支持 AutoCompleteTextView.
虽然SimpleCursorAdapter 仅只支持TextView和ImageView,但现在用户可以运用ViewBinder轻松增加支持以实现任何View种类
这里的一些新特性极大降低了操作困难,扩展了SimpleCursorAdapter或者其父类的运用


Widgets and Views
类:
android.widget.Page和 android.widget.PageTurner 被移除了.
android.widget.TabHost和android.widget.TabWidget目前为止,不被反对并且还能够被使用.
坐标:
“窗体坐标”,在android.view.View被呈现,其中有这样的字段(mWindwoLeft和mWindowTop)已经被移除.公共访问方法getWindowLeft(),getWindowTop(),getWindowRight()和getWindowBottom()也同样的都被移除了.
线程处理:
android.view.View 现在能让你在UI线程里发布一个Runnable,附带的方法有post(Runnable)postDelayed(Runnable, long). 在子类或者应用程序里
,这些能够被用作替代项去创建一个句柄.
同样你也能使用一个新的类(android.view.UIThreadUtilities)去正确处理UI线程.UI 线程需要时,在UI线程或者一大块代码,这个类让你去核对代码是否正确执行了.你也能使用android.app.Activity.runOnUIThread(Runnable) 这个更容易,从应用程序去实现.
事件
android.view.KeyEvent.KEYCODE_FN 被改名为android.view.KeyEvent.KEYCODE_ALT,同样android.view.KeyEvent.isFnPressed()也被改名为android.view.KeyEvent.isAltPressed().
android.view.View.setKeyListener()现在被改名为 android.view.View.setOnKeyListener().
一个View,能够通过设置(android.view.View.setClickable() 或者android:clickable在 XML里)去接受click事件.这些被使用,实例化,在LinearLayout上创建复杂的按钮

触摸方式:
触摸方式是一种操作方式,并不需要准确的给出焦点或者控制焦点(
例如像按钮这样的可控制的项目),因此用户有必要去了解其中某一项目是怎样输入的.
有一种拥有触摸能力的设备,这种设备将具有“触摸方式”,用户能够触及屏幕.
依照前面所说的,仅在视图上,如果isFocusableInTouchMode()返回为true,那说明此处被聚焦了.(例如像文本编辑组件),还有一些其它的视图如按钮,当被触摸时,也会被捕获其焦点.
如果用户点击方向键,像D键,设备将退出触摸方式,并且所有的视图都将变为聚焦.关于触摸方式和焦点处理在android.view.Viewj里面有更加详细的介绍。

请求焦点:
android.view.View.takeFocus()被移除了。取而代之的是android.view.View.requestFocus()中的一种形式.
requestFocus()现在表现的更像是老式的takeFocus()方法,并且包括返回一个boolean,表示是否被调用成功.
takeFocus()被requestFocus()取而代之.
在你的行为给计算机的指示为聚焦时,现有requestFocus()方法,它将一直工作,如果进入触摸方式,触摸行为产生聚焦指示,调用这个方法。
修正重写了的requestFocus()返回一个boolean来指示是否在视图上,你转发这个请求(通常都以这样的方式在转发调用之前放入一个返回语句去请求焦点).

滚动条:
经滚动条拖过以后,渐隐去的部分的能见度能被android.view.View.getTopFadingEdgeStrength(),,getLeftFadingEdgeStrength(),
getBottomFadingEdgeStrength()getRightFadingEdgeStrength()
这四个方法动态的控制.
滚动条依然保持“长方形”这种视觉.


待续......
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics