長いので分割します。
ここには、以下が含まれます。
・Fragments
・Action Bar
・System clipboard
・Drag and drop
Android 3.0 Platform - 1 -
Android 3.0 Platform - 2 -
Android 3.0 Platform - 3 -
---------------------------
Android 3.0 Platform
API Level: 11
Android 3.0 platform が Android SDK としてダウンロードできるようになりました。ダウンロードできる platform には Andorid のライブラリとシステムイメージ、エミュレータのスキンなどが含まれますが、外部ライブラリは含まれません。
Android 3.0 の開発とテストを開始するには Android SDK Manager を使って platform をあなたの SDK にダウンロードしてください。より詳しい情報は Adding SDK Components を見てください。もし Android 開発が初めてなら、 download the SDK Starter Package から初めてください。
Android 3.0 のよりハイレベルの紹介は Platform Highlights を見てください。
Note: すでに Android アプリケーションを公開している場合、できる限り早く、あなたのアプリケーションを Android 3.0 でテストし最適化してください。あなたのアプリケーションが最新の Android-powered デバイスでベストな体験ができることをユーザーに確約すべきです。そのために何ができるかのより詳しい情報は Optimizing Apps for Android 3.0 を見てください。
---------------------------
API Overview
以下のセクションは Android 3.0 で新しく追加された機能・以前のAPIから変更された内容のテクニカルオーバービューです。
---------------------------
Fragments
Fragment は新しいフレームワークコンポーネントです。これにより、自身の UI とライフサイクルを定義した self-contained なモジュールに Activityの異なるのエレメントを分離することができます。Fragment を作成するには、Fragment クラスを継承し、Activity に似たいくつかのライフサイクルコールバックメソッドを実装しなければなりません。複数の Fragment を合わせることで、1つの Activity 内で multi-pane UI を作成することができ、各 pane が自身のライフサイクルとユーザーの入力を管理します。
さらに、UIを提供しないで Fragment を使い、Activity が走っている間だけ発生する download の進捗管理など、Activity 用の worker として使用することができます。
加えて:
・Fragment は self-contained で複数の Activity で再利用できる。
・Activity 内で、Fragment の追加、削除、置換、アニメーションが可能。
・Activity によって管理される back stack に Fragment を追加でき、変更時に Fragment の状態を保存するので、ユーザーは様々な状態を介して前後に移動できる。
・代替レイアウトを提供する(providing alternative layouts) ことで、画面サイズおよび向きに応じて Fragment を混ぜたり合わせたりできる
・Fragment はそれらの含む Activity への直接アクセスを持っているので、Activity の Action Bar (次で述べる) のアイテムに寄与できる。
Activity 内で Fragment を管理するには FragmentManager を使う必要があります。これは、Fragment とインタラクトするいくつかの API を提供します。例えば、Activity 内の Fragment を見つけたり、以前の状態をリストアするために back stack へ Fragment を pop したりできます。
Fragment の追加や削除などの transaction を行うには、FragmentTransaction を生成する必要があります。その後、add(), remove(), replace() などのメソッドを呼ぶことで transaction を実行できます。transaction に対して行いたい全ての変更を適用するには、commit() メソッドを呼ばなければなりません。そうするとシステムが Fragment の transaction を Activity に適用します。
Fragment を使用するためのより詳しい情報は、Fragments ドキュメントを読んでください。いくつかのサンプルは API Demos アプリケーションにあります。
---------------------------
Action Bar
Action Bar は Activity Window の上部にあったこれまでのタイトルバーを置き換えるものです。これはアプリケーションのロゴを左隅に含み、Option Menu 内のアイテムへの新しいインタフェースを提供します。加えて、Action Bar は次のことが可能です。
・"action items" として Action Bar に直接メニューアイテムを追加することができる
メニューアイテムの XML 定義で、android:showAsAction 属性に "ifRoom" を設定します。十分な room がある場合、メニューアイテムは Action Bar に直接表示されます。そうではない場合、Action Bar の右側にあるメニューアイコンで表示される overflow メニュー内に配置されます。
・"action view" を作成することで、検索ボックスのようなウィジェットに action item を置き換えられる
メニューアイテムの XML 定義で、android:actionViewLayout 属性にレイアウトリソースを指定し、android:actionViewClass 属性にウィジェットのクラス名を指定します(Action Bar にアイテムが現れるように android:showAsAction 属性も定義しなければなりません)。Action Bar に十分な room がなくアイテムが overflow メニューに表示される場合、それはこれまでのメニューアイテムのように振る舞い、ウィジェットは表示されません。
・アプリケーションロゴにアクションを追加し、カスタムロゴに置き換える
アプリケーションロゴは自動的に android.R.id.home ID が割り当てられ、タッチされたときシステムから Activity の onOptionItemSelected() コールバックに渡されます。コールバックメソッド内でこの ID に単純に応答することで、アプリケーションの "home" Activity へ移動するなどのアクションを実装できます。
ロゴをアイコンに置き換えるには、マニフェストファイル内で android:logo 属性にロゴを指定します。そうすると、Activity で setDisplayUseLogoEnabled(true) が呼ばれます。
・Fragment の back stack へのナビゲーションとしてパンくずリストを追加する
・Fragment へのナビゲーションとしてタブもしくは drop-down list を追加する
・テーマと背景で Action Bar をカスタマイズする
Action Bar は新しい holographic theme を使う全てのアプリケーションにとって標準です。つまり android:minSdkVersion もしくは android:targetSdkVersion が "11" に設定されている場合にとって標準になります。
Action Bar のより詳しい情報は、Action Bar ドキュメントを読んでください。いくつかのサンプルは API Demos アプリケーションにあります。
---------------------------
System clipboard
アプリケーションは system-wide クリップボードへデータ(単なるテキストを超えて)コピー&ペーストできるようになりました。クリップボードデータはプレーンテキストやURI、Intent も可能です。
content provider を通して、ユーザーにコピーさせたいデータへのシステムアクセスを提供することで、ユーザーは複雑なコンテント(画像やデータ構造など)をあなたのアプリケーションからコピーし、そのコンテントタイプをサポートする別のアプリケーションにペーストすることができます。
クリップボードを使うには、まず getSystemService(CLIPBOARD_SERVICE) を呼んで、グローバルの ClipboardManager オブジェクトを取得します。
クリップボードにアイテムをコピーするには、新しい ClipData オブジェクトを生成し、単一のエンティティが記述された 1つ以上の ClipData.Item をそれに保持させる必要があります。1つの ClipData.Item を含むだけの ClipData オブジェクト を作成する場合、newPlainText(), newUri(), newIntent() などのヘルパーメソッドを使うことができます。これらはあなたが提供した ClipData.Item を pre-loaded して ClipData オブジェクトを返します。
ClipData をクリップボードに追加するには、ClipboardManager のインスタンスの setPrimaryClip() メソッドで ClipData を渡します。
そうすると、ClipboardManager の getPriimaryClip() を呼ぶことでクリップボードからファイルを読むことができます。あなたが受け取る ClipData のハンドリングは複雑になる可能性があります。そのため、実際に張り付ける前にクリップボード内のデータタイプがハンドルできるかどうか確認する必要があります。
クリップボードはクリップするデータの一欠片(つまり ClipData オブジェクト) しか保持することができません。しかし、一つの ClipData は複数の ClipData.Item を含むことができます。
より詳しい情報は Copy and Paste ドキュメントを読んでください。また、コピー&ペーストの簡単な実装は API Demos に、より複雑な実装は Note Pad アプリケーションで見ることができます。
---------------------------
Drag and drop
新しい API はあなたのアプリケーションのユーザーインタフェースでのドラッグ&ドロップ操作を単純化します。ドラッグ操作はある場所から別の場所へいくつか種類のデータ転送(ClipData オブジェクト内で運ばれる)です。ドラッグ操作の開始と終了地点は View です。そのため、ドラッグ&ドロップ操作を直接ハンドルする API は View クラス内にあります。
ドラッグ&ドロップ操作は ACTION_DRAG_STARTED, ACTION_DRAG_ENTERED, ACTION_DROP などの、いくつかのドラッグアクション(DragEvent オブジェクトで定義される)で定義されたライフサイクルを持ちます。ドラッグ操作に携わりたい各 View はこれらのアクションを listen することができます。
あなたの Activity でコンテンツのドラッグを開始するには、View の startDrag() を呼びます。これはドラッグするデータを表す ClipData オブジェクト提供します。View.DragShadowBuilder によって、ユーザーがドラッグしている間指の下に見える "shadow" を簡単に作ることができます。startDrag() で提供される Object はドラッグするオブジェクトの情報を、受け取る view との間で共有することができます。
View で ドラッグされたオブジェクトを許可する ("drop" を受け取る) には、setOnDragListener() を呼んで view に OnDragListener をレジストします。view 上でドラッグイベントが起こると、システムは OnDragListener に対して onDrag() を呼びます。これは、発生したドラッグアクションのタイプ (ACTION_DRAG_STARTED, ACTION_DRAG_ENTERED, ACTION_DROP など)が記述された DragEvent を受け取ります。ドラッグイベントのストリームを配信するために、ドラッグの間システムは繰り返しドラッグ下にある view に対して onDrag() を呼びます。受け取る view は onDragEvent() に運ばれるイベントタイプを DragEvent の getAction() を呼ぶことで問い合わせることができます。
Note: ドラッグイベントは ClipData オブジェクトを運びますが、これはシステムのクリップボードとは関係ありません。ドラッグ&ドロップ操作はドラッグしているデータをシステムのクリップボードに入れることはありません。
より詳しい情報は、Dragging and Dropping ドキュメントを読んでください。ドラッグ&ドロップの実装は API Demos アプリケーションと Honeycomb Gallery アプリケーションで見ることができます。
0 件のコメント:
コメントを投稿