Tablet S将推出行货版本

Sony Tablet的平板型号Tablet S将推出行货版本。

索尼(SONY)中国于9月22日正式发布了行货版本的Tablet S。硬件上和日版的Tablet S相同,价格也相当。16GB WiFi版(SGPT111CN/S)  RMB 3688元,32GB WiFi版(SGPT112CN/S)  RMB 4488元。不过没有3G型号。软件上,尽管同样使用了Android 3.2系统,但是和其他各种行货Android设备一样进行了本地化的修改。没有预置Facebook,Twitter等网站的社交化应用支持,而是提供了如新浪微博、新浪新闻、QQ HD、乐视影视、百度地图、读览天下等国内第三方应用。同时Tablet S引以为卖点的PlayStation Certified、Reader Store、Qriocity等在中国大陆没有开展的付费媒体服务也和预料中一样没有被包含。不得不说是一种遗憾。此外行货的配置列表中没有提到GPS,是漏写了而已还是行货真的就不支持GPS呢?如果是后者,行货Tablet S的竞争力就大打折扣了。

配件方面,提供了底座、保护套等常规配件。而日版提供的蓝牙无线键盘是否会有行货版本,目前还不清楚。

另外在9月22日至10月21日预售期间,预订 Sony Tablet 平板电脑一台即可获得价值RMB 199 的屏幕保护膜一张。

现在在北京和上海的Sony Style可以体验Tablet S。

上海店:卢湾区淮海中路901号索尼销售体验店联系电话:021-6472-1212

北京店:东长安街一号东方新天地商场首层AA06C-AA08店铺联系电话:010-5811-6080

自己订购的日版Tablet S因为物流问题还需要一个月左右才能收到,所以打算这个周末就去Sony Style提前体验一下。之后会写试用感想。

Tablet S正式发布的新闻稿

Tablet S的预售页面

 

 

索尼(SONY)平板电脑Tablet S简讯

昨天是Tablet S的首发日。尽管自己预定的Tablet S Wifi 16GB版还需要两至三天才能收到(顺利通关的前提下),不过看到了有日本网友的开箱文和测评,便打算简单地介绍一下。

首先是开箱文,由于主要内容是Tablet S外包装的图片,因此就直接给出链接了(可惜大陆无法正常访问很多日本的博客)。

之后该博客又更新了Tablet S的简单使用感想。而本文的主要内容就是翻译整理这篇感想文章的几条要点:

  • Tablet S的整体感觉比想象中的要好。
  • 和Galaxy Tab、ICONIA TAB A500、Galaxy Tab10.1等相比,Tablet S的文字输入体验要好得多。这得益于出色的键盘功能布局设计和触摸屏的优异精度(这两点也都是索尼着重宣传的部分)。
  • 音乐播放器搭载了Walkman中所使用的Clear Bass技术是一个小惊喜。
  • Android系统不可避免的问题,屏幕方向改变时的卡顿和SD卡的使用不便等问题依然存在。
  • 和iPad相比Android平板的那种微妙的触摸屏的违和感,在Tablet S上总算是减轻了些,这也是索尼对Tablet S用的触摸板进行了深度优化的结果(之前的宣传中也表示对触摸板进行了特殊的处理)。

毕竟是简单感想,所以只提到了以上几点。更多的优缺点恐怕要实际使用一段时间后才能了解了吧。等到自己收到后,也会作一个比较详细的长期的测评。

Sony Tablet的Tablet S Wifi版本系统将提前升级至Android 3.2

根据这篇文章的消息,Tablet S可以在明天首发时便获得Android 3.2的系统升级。

之前索尼(SONY)的声明是9月17日发售的Tablet S Wifi版将搭载Android 3.1,而10-11月份发售的Tablet S 3G+Wifi版将在销售时就搭载Android 3.2。

不过意外的,今天Tablet S就得到了系统版本1.10的升级。内容包括Android 3.2的系统升级以及对尚未开始的Video Unlimited服务的支持。

该升级可以通过OTA完成,下载升级包约182.1MB。

升级后:

Android 3.2,内核版本2.6.36.3,Build版本1.10.001100022。

尽管3.2至于3.1来说主要是提供了更广泛的硬件支持,对于Tablet S来说并没有特别实际的变化,不过能够使用最新的系统总是一件好事。

自己预定的Tablet S应该明天就会从日本通过EMS运往中国,希望这个周末就能够收到了。

【玩后感】テイルズ オブ エクシリア/无限传说

经过一个星期的等待,今天终于入手了テイルズ オブ エクシリア(下称TOX)。自己并不是传说系列的粉丝,之前也只不过是零星玩过几作。不过这次15周年纪念作品的质量保证让我决定好好地体验一下传说系列的魅力。

不过一方面已经没有了时效性,另一方面自己也不可能一下子花很多时间去研究,所以也说不上是测评,就只是随意地写一些自己的感想而已。

预约特典的挂件是通常版的米拉。虽说已经知道不是什么很精细的东西,不过实际看到时还是觉得果然有些粗糙了。日版和港版的一个区别是日版光盘盒封面的内页是历代传说作品的时间表,而港版则是一片空白。另外盒内还有一张写着特典PS3主题和游戏内服装的下载代码的卡片。

游戏需要2300MB的空间进行数据安装,实际上的安装文件大小为2258MB。于是自己80GB版的PS3就只剩下了17MB的硬盘空间……

游戏的读盘速度很快,不过偶尔在画面切换时黑屏的时间比理想中要长了那么一两秒。

音乐方面的话之前就听过了游戏的原声碟,这次的TOX中有很多东方风的BGM,不过特别好听的似乎不多。当然还没有实际玩过游戏,感觉也是不准确的吧。

画面方面属于中上水平。和FF13的风格不同,所以并不能很好地说孰优孰劣。而和战场的女武神相比,我也是更偏好战场的女武神的那种帆布式的画面风格。玩过前几作传说系列在PS3上的试玩版,横向比较的话,TOX的画面已经不错了,细节方面也很注意。

系统方面,TOX的地图模式之前几作不太相同,感觉上倒是和FF13其实有些相似,操作上还算顺手。战斗的话目前只进行了几场杂兵战,不少战斗系统还没有开放,所以也说不出个所以然。看之前的各种介绍来说还是能有一份期待的吧。

剧情方面更是没有什么可以谈的了,等到通关后再写写什么了吧。

不过根据自己平时的情况来看,要打通TOX恐怕没有一年两年是不行的了。RPG方面之前的战场的女武神花了整整两年,FF13至今还剩三章。不过有什么关系呢,慢慢玩就好。

中文游戏信息:

游戏名称 无尽传说/无限传说
开发商 BANDAI NAMCO Games Inc. (NAMCO)
发售日 2011年9月8日
售价 8379日元
类型 RPG(揺るぎなき信念のRPG,毫无动摇的信念RPG)
游戏人数 1人

片段(Fragment)

一个片段代表了一个Activity的一种行为或是其用户界面的一个区域。可以在一个单独的活动中组合多个分片来组建一个多面板UI,并在不同的活动中多次利用同一个分片。可以把片段理解为一个活动的一个模块化部分,有其自己的生命周期,接收其自己的输入事件,并且可以在活动运行过程中添加或移除一个片段。(译注:网络上也有“碎片”的译法,不过目前还并没有统一的名称。在这里姑且称为“片段”,个人感觉比“碎片”听起来舒服一些 :)  )

一个片段必须被嵌在一个活动中,它的生命周期与该活动的有着紧密联系。例如,当活动被暂停(pause),该活动中所有的片段也会暂停,当活动被销毁(destroy),其中所有的片段也会被销毁。不过,当活动在运行时(处于resumed生命周期状态),可以单独改变每一个片段,如添加或是删除它们。当进行这样的片段处理时,还能将片段加入一个由该活动管理的返回栈——每个活动中的返回栈条目是一段发生过的片段处理的记录。返回栈允许用户通过按下BACK键撤销一个片段事务(反向导航)。

在添加一个片段作为活动布局的一部分时,它将存在于活动的视图层级的ViewGroup中,并定义其自有的视图布局。可以通过在活动布局文件中以<fragment>元素声明片段,或是在程序代码中添加至已有的ViewGroup)来将一个片段插入活动的布局之中。不过,片段并不一定要是活动布局的一部分;还可以将片段作为一个活动的不可见部分使用。

本文档描述了如何使用片段来构建应用程序,包括片段如何在被加入活动的返回栈时维护其状态,与活动及活动内的其他片段共享事件,以及和活动的动作条相结合等。

设计理念

Android在Android 3.0(API级别“Honeycomb”蜂巢)中引入了片段,用以在平板等大屏幕上支持更为动态而灵活的UI设计。由于平板等屏幕比手机的要大许多,因此有更多的空间来交互组合UI组件。片段可以在不必考虑视图层级的复杂操作的情况下实现这种设计。通过把活动的布局分成一个个片段,就可以在运行时改变活动的外观并在该活动所管理的返回栈中保存这些变化。

例如,一个新闻程序可以在左侧用一个片段来展示条目列表,在另一边的片段中显示一条条目——两个片段同时显示在一个活动中的两边,且都有自己的生命周期回馈方法并处理其自有的用户输入事件。因此,相比一个活动选择条目另一个活动阅读条目,现在用户可以在同一个活动中选择条目并阅读,就像图1所示的那样。

图1 一个演示了如何通过片段将两个独立的UI模块并入一个活动的范例

一个片段应该是程序中的一个模块化的可重用的组件。也就是说,因为片段定义了其自有的布局以及使用了自有生命周期回馈方法的自有行为,所以可以将一个片段用在多个活动之中。这是很重要的一点,它使得能够在不同屏幕尺寸上提供不同的用户体验。例如,可以只在屏幕尺寸足够大时才在一个活动中包含多个片段,否则,就将不同片段分在不同的活动中使用。

例如——还是那个新闻程序的例子——程序可以在运行于一个超大屏幕设备(extra large screen,比如平板电脑)时将两个片段嵌入在一个Activity A中。不过,在普通尺寸屏幕的设备(例如,手机)上,就没有足够的空间放下两个片段,所以Activity A仅包含了条目列表功能的片段,而当用户选择了一个条目时,它将启动包含了阅读条目的片段的Activity B。因此,如图1所示程序将同时支持两种设计模式。

创建一个片段

要创建一个片段,必须创建一个Fragment(或它的一个已有的子类)的子类。Fragment类的代码看起来和一个Activity很相似。它包含了和一个活动类似的回馈方法,例如onCreate()、onStart()、onPause()和onStop()。事实上,如果要把一个已有的Android程序改为通过片段来实现,只需简单地把代码中的活动的回馈方法改为相应的片段的回馈方法。

通常,至少需要实现以下的生命周期方法:

onCreate()

系统在创建片段时将调用这个方法。在其实现中,应当初始化那些希望在该片段暂停或停止时被保留的必要组件以供之后继续使用。

onCreateView()

系统在片段第一次绘制其用户界面时将调用这个方法。要绘制片段的UI,就必须从这个方法返回一个片段布局的根View。如果片段不提供UI,可以只返回一个null。

onPause()

系统将调用该方法作为用户将要离开该片段的第一个标志(尽管这不意味着片段一定就会被销毁)。通常应当在这里保存当前用户进行的操作(因为用户之后或许不会返回该片段了)。

大部分的程序应当为每一个片段至少实现以上三个方法,不过还有一些其他的回馈方法可以用来处理片段生命周期的不同阶段。所有的生命周期回馈方法会在之后的“处理片段生命周期”一节再讨论。

图2. 一个片段的生命周期(当其所属的活动处于运行状态时)

除了Fragment基类之外,还有一些可供继承的子类:

DialogFragment

显示一个浮动对话框。可以用该类来创建对话框而不是用Acitivity类中的对话框辅助方法来创建,这样就可以将一个片段对话框加入由活动所管理的片段的返回栈,令用户可以返回到一个已被舍弃的片段。

ListFragment

显示一个由某一适配器(例如SimpleCursorAdapter)管理的项目列表,类似于ListActivity。它提供了好几种管理列表视图的方法,例如onListItemClick()回馈方法以处理点击事件。

PreferenceFragment(偏好设置片段)

以列表方式显示一个Preference对象的层级,类似于PreferenceActivity。当为程序创建“设置”活动时这是很有用的。

添加用户界面

一个片段通常被用于一个活动的用户界面,其自有的布局将成为该活动的一部分。

要为一个片段提供布局,就必须实现onCreateView()回馈方法,Android系统将在该片段绘制其布局时调用它。该方法的实现必须返回一个片段布局的根View。

注意:如果片段是一个ListFragment的子片段,那么默认的实现将从onCreateView()返回一个ListView,因此不必另外去实现该方法。

要从onCreateView()返回一个布局,可以从一个定义于XML中的布局资源中生成它。为此,onCreateView()提供了一个LayoutInflater对象。

例如,这里有一个Fragment的子类从example_fragment.xml文件中读取了一个布局:

被传递给onCreateView()的container参数是上一级的ViewGroup(来自于该活动的布局),片段的布局将被插入其中。savedInstanceState参数是在返回片段时提供之前片段实例数据的一个Bundle(将在“处理片段生命周期”一节中更深入地讨论状态恢复)。

创建一个布局

在上面的范例中,R.layout.example_fragment是指向保存于程序资源中的一个名为example_fragment.xml布局资源的引用。关于如何在XML中创建一个布局的更多信息,请参见“用户界面”文档。

inflate()方法需要三个参数:

  • 希望生成的布局的资源ID
  • 要生成的布局的父级ViewGroup。为了使系统将布局参数传递给生成的布局的根视图,就需要传递该container。这将由当前正在运行的父视图来决定。
  • 一个表明了生成的布局在生成过程中是否应该和ViewGroup(即第二个参数)相关联的布尔值。(在这个例子里,因为系统已经将生成的布局插入到了container内所以值为false——如果是true则会在最终的布局中产生一个冗余的视图组。)

现在已经了解了如何创建一个提供了布局的片段。接下来,需要将该片段添加到活动中去。

向活动添加一个片段

通常,片段作为宿主活动的UI的一部分嵌于该活动整体视图层级之中。有两种方式可以将一个片段添加到活动的布局:

  • 在活动的布局文件里声明该片段。

这种情况下,如果片段是一个视图,可以为其指定布局属性。例如,这里有一个含有两个片段的活动的布局文件:

 <fragment>中的android:name属性指定了用来实例化布局的Fragment类。

当系统创建该活动布局时,将实例化在布局中指定的每一个片段并为其调用onCreateView()方法来检索每一个片段的布局。系统将在<fragment>元素处直接插入由该片段返回的View。

注意:每一个片段需要在系统中有一个唯一的标识用以在活动重启时还原该片段(并且用于获取该片段以执行如移除该片段之类的操作)。有三种方式提供一个片段的ID:

    • android:id属性提供唯一的ID。
    • android:tag属性提供唯一的字符串。
    • 如果没有提供以上两种标识,系统将使用其容器视图的ID。

 

  • 或者,在程序中将片段添加至已有的ViewGroup。

在活动正在运行中的任意时刻,都可以将片段添加至活动的布局。只需要指定这一需要放置片段的ViewGroup即可。

要在活动中进行片段事务(例如添加、移除或替换一个片段),必须使用FragmentTransaction所提供的API。可以像这样在Activity中获取一个FragmentTransaction的实例:

之后可以用add()方法添加一个片段,指定要添加的片段以及要插入该片段的视图。例如:

传递给add()的第一个参数是该片段应当被放置的ViewGroup,通过资源ID来指定,第二个参数则是要添加的片段。

一旦通过FragmentTransaction进行了变更,比如调用commit()来使变更生效。

添加没有UI的片段

上面的范例演示了如何添加提供了UI的片段至活动中。不过,也可以通过使用一个片段来在活动中执行后台行为而不显示额外的UI。

要添加没有UI的片段,需要在活动中通过使用add(Fragment, String)来完成(为片段提供一个唯一的”tag”字符串而非一个视图ID)。这样就能添加该片段,但是,因为它没有和活动布局中的某个视图相关联,所以将不会收到onCreateView()的调用。因此不需要去实现这个方法。

为片段提供一个字符串标签(tag)对于无UI片段来说并不是很严格的要求——也能为包含UI的片段提供标签——但如果片段不含UI,那么字符串标签就是唯一能识别该片段的方式了。如果希望之后能从活动中获取该片段,需要使用findFragmentByTag()。

关于将片段作为后台工作部件而不含UI的活动的范例,请参见FragmentRetainInstance.java范例。

管理片段

要在活动中管理片段,需要使用FragmentManager。可以通过在活动中调用getFragmentManager()来获取它。

借助FragmentManager可以做到包括以下这些事:

  • 通过findFragmentById()(适用于在活动布局中提供了UI的片段)或findFragmentByTag()(对于提供了或没有提供UI的片段都适用)来获取已存在于活动之中的片段。
  • 通过popBackStack()将片段从返回栈中弹出(模拟了一次用户按下BACK键的指令)。
  • 通过addOnBackStackChangedListener()为返回栈的变化注册一个监听器。

关于这些方法的更多信息,请参见FragmentManager类的文档。

正如在之前一节中所描述的,还可以使用FragmentManager来打开一个FragmentTransaction,以能够执行例如添加、移除片段等事务。

执行片段事务(Fragment Transaction)

在活动中使用片段的一大特点是可以根据用户交互对这些片段进行添加、移除、替换或是执行其他操作。对活动进行的每一组改变都被称为是一次事务(transaction),可以通过FragmentTransaction提供的API执行事务。还可以把每一个事务都保存至活动所管理的返回栈,使得用户可以撤销片段的改变(和返回上一个活动类似)。

可以像这样从FragmentManager获取一个FragmentTransaction的实例:

每一个事务都是一组能同时执行的变更。可以通过对给定操作使用如add()、remove()和replace()等方法在设置所有希望执行的变更。之后,必须对活动调用commit()来应用该事务。

不过,在调用commit()之前,需要调用addToBackStack(),以将该事务加入片段事务的返回栈中。该返回栈由活动所管理,允许用户通过按下返回键来返回到之前的片段状态。

例如,下面展示了如何替换一个片段,并将之前的状态保存于返回栈中:

在这个范例里,newFragment替代了当前在由ID R.id.fragment_container定义的布局容器中的(任意的)片段。通过调用addToBackStack(),替换事务被保存于返回栈中,因此用户可以通过按下返回键来回滚事务,回到之前的片段。

如果将多次变更添加至事务(例如第二个add()或是remove())并调用addToBackStack()的话,那么所有在调用commit()之前被应用的变更都将作为一个单独的事务被加入返回栈中,BACK键将会恢复所有这些变更。

向FragmentTransaction中添加变更的顺序是无所谓的,不过:

  • 必须在最后调用commit()
  • 如果将多个片段加入同一个容器中,那么添加的顺序将决定它们在视图层级中的顺序

如果在执行移除片段的事务时没有调用addToBackStack(),那么该片段将在事务被执行(commit)后被销毁,用户无法再次返回它。反之,如果在移除片段时调用了addToBackStack(),那么该片段将被中止(stop),并在用户返回时被继续(resume)。

提示:对于每个片段事务,都可以通过在执行(commit)之前调用setTranstition()以应用一个切换动画。

调用commit()并不会立即执行事务。它只是作了在活动的UI线程(“主”线程)准备好之时运行该事务的调度。不过,如有必要,可以在UI线程中调用executePendingTransactions()来立即执行由commit()提交的事务。只有在该事务是其他线程工作的组成部分时才有必要这么做。

注意:可以仅在活动保存其状态之前(当用户离开活动时)使用commit()来执行一次事务。如果在此之后执行,将抛出一个异常。这是因为如果活动需要被储存的话,执行之后的状态将无法被保存。对于丢失状态也无妨的情况,则需使用commitAllowingStateLoss()。

和活动进行通信

尽管一个Fragment被作为一个独立于Activity的对象使用,且可以被用于多个活动之中,一个给定的片段实例可以与包含它的活动直接关联。

特别要注意的是,片段可以以getActivity()来获取Activity的实例,并能够在活动的布局中很容易地进行寻找视图之类的任务:

类似的,活动可以通过findFragmentById()或findFragmentByTag()从FragmentManager获取一个Fragment的引用来调用片段内的方法。例如:

创建活动接受的事件回馈

在有些情况下,可能会需要片段与活动共享事件。这可以通过在片段定义一个回馈接口并在宿主活动中实现它来实现。当活动通过该接口接收到了一个回馈时,如有需要,它可以与布局中的其他片段共享信息。

例如,如果一个新的应用程序在一个活动中有两个片段——一个用来显示一列文章(片段A)而另一个用来显示某一篇文章(片段B)——那么片段A必须在某一个列表项目被选中时告知活动,使活动能够告知片段B来显示该文章。在这种情况下,OnArticleSelectedListener接口被声明于片段A内:

之后持有该片段的活动实现了OnArticleSelectedListener接口并覆盖了onArticleSelected()来将来自于片段A的事件通知给片段B。为确保宿主活动实现了该接口,片段A的onAttach()回馈方法(当把片段添加至活动时系统将会自动调用该方法)通过将传递过来的Activity强制转换为了onAttach()以实例化了一个OnArticleSelectedListener的实例:

如果该活动没有实现这个接口,那么片段将会抛出一个ClassCastException。一旦成功实现了该接口,mListener成员将持有一个活动的OnArticleSelectedListener实现的引用,因此片段A将可以通过调用由OnArticleSelectedListener接口定义的方法和活动共享事件。例如,如果片段A是ListFragment的一个继承,那么每次用户点击一个列表项目时,系统将调用片段的onListItemClick(),它将之后调用onArticleSelected()来与活动共享该事件:

传递给onListItemClick()的id参数是被点击项目的行ID,它被活动(或其他片段)用来从应用程序的ContentProvider中获取文章。

关于使用内容提供器的更多信息请参见“Content Providers文档”。

添加项目至动作条(Action Bar)

片段可以通过实现onCreateOptionsMenu()方法来和活动的选项菜单(Options Menu)项目相结合使用(因此也就可以和动作条一起使用)。不过,为了使该方法能够接受调用,必须在onCreate()中调用setHasOptionsMenu()来标识该片段将被添加至选项菜单(否则,该片段将不会接收到对onCreateOptionsMenu()的调用)

之后从片段添加至选项菜单的任何项目都将被增加到已有菜单项目之后。该片段还将在某一菜单项目被选中时收到onOptionsItemSelected()的回馈。

也可以在片段布局中注册一个视图,通过调用registerForContextMenu()来提供上下文菜单。当用户打开上下文菜单时,该片段将收到一个对onCreateContextMenu()的调用。当用户选中一个项目时,片段将收到一个对onContextItemSelected()的调用。

注意:尽管片段对每一个添加过的项目都能收到一个项目选中回馈,但活动本身将在用户选择菜单项目时首先收到相应的回馈。如果活动的项目选中回馈的实现没有处理该选中的项目,那么该事件才会被传递给片段的回馈方法。对于选项菜单和上下文菜单来说都是如此。

关于菜单的更多信息,请参见“菜单”和“动作条”开发者指南。

处理片段生命周期

管理一个片段的生命周期和管理一个活动的生命周期十分的相像。如同活动一样,一个片段可以以三种状态存在:

Resumed

该片段在运行中的活动里是可见的。

Paused

另一个活动正处于前台且获得了焦点,不过含有该片段的活动依然是可见的(前台的活动是半透明的或没有覆盖整个屏幕 )。

Stopped

片段不可见。或是宿主活动被停止了,或是片段被从活动中移除后加入了返回栈。一个被停止的片段依然是存在着的(所有的状态和成员信息由系统保持着)。不过,它对于用户不再可见,在活动被杀除后也将被杀除。

和一个活动一样,可以通过一个Bundle以在活动的进程被杀除而又需要在该活动被重建时还原该片段的情况下保存片段的状态。可以在活动的onSaveInstanceState()回馈方法中保存状态,在onCreate()、onCreateView()或onActivityCreated()中还原状态。关于保存状态的更多信息,请参见“活动”文档。

图 3. 活动生命周期对于片段生命周期的影响

一个活动和一个片段的生命周期之间最大的区别在于它们是如何被保存于各自的返回栈中的。一个活动默认为在其被停止时被放入由系统所管理的一个返回栈中(这样用户就能通过BACK键返回该活动,就像“任务和返回栈”中所说的那样)。然而, 一个片段只有在进行片段移除的事务中调用addToBackStack()来显式地请求保存片段的实例时才会被放入由宿主活动所管理的返回栈中。

除此之外,管理片段的生命周期和管理活动的生命周期十分相似。因此,管理活动生命周期时的做法同样可以应用于管理片段。所需要理解的就仅仅是活动的生命周期将会地片段的生命周期有着怎样的影响。

范例

为了总结本文档中所说的,下面有一个范例来演示一个使用了两个片段的活动是如何创建一个双面板布局的。下面的这个活动包含了一个显示一列莎士比亚戏剧标题的片段和另一个在从列表中选择项目后显示该戏剧的摘要的片段。它还演示了如何基于不同的屏幕配置来提供不同的片段配置。

注意:该活动的完整源代码可以在FragmentLayout.java中得到。

主活动按照常规的方式在onCreate()中应用布局:

被应用的布局是fragment_layout.xml

使用该布局,系统将在活动载入该布局时实例化TitlesFragment(它列出了戏剧标题),而FrameLayout(它显示戏剧的摘要)将占用屏幕的右侧(不过最初它是空着的)。可以发现,直到用户从列表中选择了一个项目之后某一个片段才会被放入FrameLayout。

不过,不过所有的屏幕配置都足够宽来在两边显示戏剧列表和摘要。所以上面的布局仅用于横屏模式,需要保存为res/layout-land/fragment_layout.xml

因此,当屏幕是竖向时,系统将应用下面的保存于res/layout/fragment_layout.xml的布局:

该布局仅包含了TitlesFragment。这意味着当设备处于竖向状态时,只有戏剧标题列表是可见的。因此,当用户在这时点击了列表项目的话,程序会启动一个新的活动来显示摘要,而不是载入第二个片段。

接下来,看一下如何在片段类中完成整个过程。首先是TitlesFragment,它显示了一列莎士比亚戏剧标题。该片段继承于ListFragment,通过它来处理大部分的列表视图工作。

正如代码中所表明的,需要注意当用户点击一个列表项目时有两种可能的行为:这取决于两种布局中的哪一种使处于激活状态的。它既可以在同一个活动中创建并表示一个新的片段来显示详细信息(将片段加入FrameLayout),也可以启动一个新的活动(并在那里显示片段)。

第二个片段,DetailsFragment显示了从TitlesFragment列表中所选择的戏剧项目的摘要:

回忆一下TitlesFragment类,如果用户点击了一个列表项目时当前布局没有包含R.id.details视图的话(DetailsFragment属于该视图),应用程序将启动DetailsActivity活动来显示项目的内容。

下面是DetailsActivity,它仅仅内嵌了DetailsFragment以在屏幕处于竖屏模式时显示所选择的戏剧摘要:

注意这个活动在横屏模式时将会自动结束,改为由主活动同时显示DetailsFragmentTitlesFragment。而在用户以竖屏模式启动DetailsActivity之后旋转屏幕至横屏模式的情况下也会如此(此时将重启当前活动)。

关于使用片段的更多范例(以及本范例的完整源文件),请参见ApiDemos里的范例代码(可以从范例SDK组件中下载)。

本页部分内容根据Android Open Source Project创作并共享的内容修改,并在知识共享 署名2.5许可协议中所述条款的限制下使用。

TGS2011索尼基调演讲内容提要(更新完毕)

今天上午举行了TGS2011索尼基调演讲,以下是其主要内容:

演示了Vita用“抵抗”系列新作“RESISTANCE BURNING SKIES”。支持多人在线模式。

PSV将支持AR游戏、和PS3共享游戏存档、跨平台对战。遥控PS3和torne、部分PS3游戏可通过PSV无线进行。11月初发表PS Suite的SDK,开发语言为C#。

进行了利用PSV操作KILLZONE 3的演示。

PS Suite开发的游戏可以在Xperia PLAY、PSV和Sony Tablet上运行。今后将扩展PS Certified的产品线。10月下旬开始PS Store上将提供PS Suite可用的初代PS游戏下载。

NTT DOCOMO闪电发表Xperia PLAY SO-01D

日本电信运营商NTT DOCOMO今天闪电发表了索尼爱立信(Sony Ericsson)制Android智能手机Xperia PLAY SO-01D,也就是Xperia PLAY的日本版本。

两者之间本身没有特别的区别,但是相信今后Xperia PLAY可用的日式游戏数量也会渐渐增加了吧。

Xperia PLAY SO-01D预计于2011年10~11月发售。

PS Vita的王牌是?!【SCEJ Press Conference】今日举行(更新完毕)

作为明天开幕的TGS2011(东京电玩展2011)的前驱,SCEJ(Sony Computer Entertainment Japan)今天13点整(当地时间)举行了SCEJ Press Conference。

发布会首先是介绍了SCE的新CEO安德鲁·豪斯。之后宣布PS3全球销量达5180万台,PSP达7140万台。PSN顺利恢复。

之后开始重点介绍PSV。PSV售价保持不变(3G版29980日元,Wifi版24980日元),发售日为12月17日!

PSV 3G版的运营商确定为NTT DOCOMO,之后NTT DOCOMO的辻村副社长上台发言。经过分析研究,决定PSV的3G服务费用为980日元/20小时,4980日元/100小时。购入PSV后立即就能使用。另外加密网络的安全性值得放心。

之后实机演示了PSV的网络功能,界面很华丽。

之后开始演示PSV的其他功能。由SCEJ开发支持部的秋山进行演示。PSV具有全新设计的主界面。而播放视频时的UI则和PS3、PSP类似。OLED的显示效果出众。

之后演示音乐播放功能。界面依旧华丽,在大量专辑封面中选择了JUJU的一张。可以同时浏览照片,支持多点触控操作。

之后演示了名为Welcome Back、Photo Puzzle等的应用。再之后则是介绍网页浏览器、和PS3、PC的连接管理功能。

之后介绍了作为特色之一的Friend功能,可以共享奖杯等信息,和PS3也可同步。和Facebook、Twitter、Skype等SNS也可联动,能在游戏进行过程中同时使用。

之后开始介绍软件阵容,屏幕上映出了板垣、名越、竹内、小林等一些游戏制作人的名字及其对PSV的高度评价。

之后CAPCOM的小野作为第一位嘉宾登场。屏幕上显示了街霸×铁拳的Logo,是【ULTIMATE MARVEL VS. CAPCOM 3】,将随PSV首发。内容和PS3版完全相同 = = 还具有网络模式,游戏帧率保持在60帧。PS Vita的话卖点自然是“沟通”。对于所有的游戏来说,沟通都是很重要的。搭载了Wifi和3G的PSV,能更为便捷地进行沟通。这也是今后开发的重点。

下一位嘉宾是Square Enix的橋本。发表了两部正在开发中的作品,首先是【ロード オブ アポカリプス】,PSV/PSP版将于12月17日发售。之后是【地獄の軍団】,指挥100只哥布林的军团夺取地域霸权。同样随PSV首发。然后介绍了PSP的FF零式和FF13-2,分别与10月27日和12月发售。

之后的消息是,FF10的HD重制版将登陆PS3、PSV!

随后登场的是KONAMI的小島秀夫。先是称赞PSV能实现家用机的功能。之后宣布MSG HD版将于2012年发售,并开始播放影像。之后宣布【ZOE アヌビス】将于2012年登陆PSV。PSP画质的【MSG和平行者】可以同时在PS3和PSP上玩,PS2级别画面的MSG 2、3 HD可以同时在PS3和PSV上玩。在掌机和家用机上玩同样的游戏是很有意思的。“PSV是唯一能够制作核心向游戏的掌机”,小岛秀夫如是说。(PSP、3DS泪流满面……)

之后SCE worldwide studio的山本介绍PSV的网络特性。【大众高尔夫6】有Visual Lobby、Daily全国大会、多人对战模式等。新作【勇者のきろく。(仮)】可以以RPG的模式记录生活。当完成了待办事项后就有打败魔物之类的事件。

之后介绍了niconico等网络服务。

之后宣布PSV首发将有26部作品,同时还有100部作品正在开发中。“无暇传说R”、“小小大星球”、“FIFA”、“忍者龙剑传Σ”等。

关于和PSP的兼容性,由于没有UMD光驱,所以PSV无法直接使用UMD。不过正在考虑继续使用已有的UMD游戏的方法。

最后是一些关于PSV在TGS2011上的参展信息。

以上为今天展前发布会的大致内容。此外还公布了一些PSV的其他信息:

内置锂离子充电电池规格为DC3.7V,2200mA。

使用专用规格的记忆卡,尺寸为长12.5mm×宽15.0mm×厚1.6mm。预计价格4GB为2200日元(折合人民币约183元)、8GB为3200日元(折合人民币约266元)、16GB为5500日元(折合人民币约457元)、32GB为9500日元(折合人民币约790元)。

电池续航能力方面,游戏约3~5小时,视频约5小时,关闭屏幕时音乐播放约9小时。(未使用蓝牙、无线网络、耳机等,屏幕亮度为出厂设置的情况下)充电时间约为2小时40分钟。

所有首发游戏都至少将提供下载版。实体的游戏载体为类似于DS游戏用的卡片。容量为2GB或是4GB。根据游戏的不同,有些可以在卡带内保存游戏存档,而有些则需要在记忆卡中保存存档。

索尼(SONY)发表搭载了Android系统的Walkman Z系列等,音质、性能均为史上最高

索尼(SONY)今天正式发表了旗下Walkman家族新成员Z系列,以及A系列和S系列的最新型号。

搭载了Android 2.3操作系统的Walkman Z系列将于今年12月10日正式发售。Z系列采用了4.3英寸的WVGA分辨率(800×480像素)高亮度高对比度触摸屏,并使用了高端平板电脑中广泛采用的NVIDIA Tegra 2处理器(1GHz,双核)及512MB运行内存。Android Market上的应用下载、高速网页浏览、高清视频播放等功能一应俱全。

Walkman Z系列具有黑、红两种色彩,16GB、32GB和64GB三种容量版本。外形尺寸约为70.5×约134.2×约11.1mm(最薄处:9.6mm)、重量约156克。电池续航时间为音乐约20小时,视频约5小时。

其背面设有单声道扬声器,同时支持DLNA、支持IEEE802.11 b/g/n标准的WLAN、HDMI接口、Bluetooth 2.1+EDR以及GPS、电子罗盘、加速度传感器、FM收音机等。

能够降低98%周围噪音的“digital noise cancelling”技术自然不必多说,能实现Walkman史上最高音质的“S-Master MX”全数字放大器,能够还原清澈高音的“DSEE(Digital Sound Enhancement Engine)”,抑制左右声道混音的“Clear Stereo”以及提供清澈低音的“Clear Bass”技术都被一并采用。此外高低音域平衡修正的“Clear Phase”技术,增强耳机临场感的“VPT”技术进一步确保了Walkman Z系列的音质。

此外,操作更为便捷的“W.Music”播放界面,以及在屏幕关闭状态下也能控制音乐播放的“W.Button”使得Walkman Z的易用性也更上一层。

Walkman Z系列的新闻稿(日文)以及产品页面(日文)。

尽管常常会有规格下降,不过通常国内行货都会引进Walkman系列的高端型号,因此预计在不久的将来行货的Walkman Z系列也将会被引进。

此外,今天索尼同时正式发表了Walkman A系列和S系列的最新型号A860系列、S760系列。

A860系列在音质上和Z系列有着相同的高规格,同样搭载了“digital noise cancelling”技术、“S-Master MX”全数字放大器、“DSEE”、“Clear Stereo”以及“Clear Bass”技术。2.8英寸的TFT触摸屏以及蓝牙支持也是相对于前辈的一大进步。

之前型号所具有的各种功能在A860上依然得到保留。目前已确定将引进国内行货,不过很可惜的是在软硬件功能上将会有一定的区别与限制。

A860系列产品页面(日文)。

中端的Walkman S系列也对产品线进行了更新。新的S760系列虽然没有搭载“S-Master MX”,但是其他诸如“digital noise cancelling”技术、“DSEE”、“Clear Stereo”以及“Clear Bass”技术的加持使其仍然保持了出色的高音质。同时也A860系列一样,S760系列也支持蓝牙音乐传输,并提供了随机搭配了蓝牙立体声耳机的S760BT套装。

S760系列产品页面(日文)

A系列化以及S系列发布的新闻稿(日文)。

A系列与S系列都将于近日于日本发售,国内行货则是已经推出。行货产品页面。稍微留意了下,主要区别似乎都是去除了内置降噪功能而需要通过降噪耳机实现降噪,内存容量也相对较小。

文中所有图片版权属于Sony Corporation。