QuickActionの導入・使い方
QuickActionはツイッターなどのアプリで使われていて画面上でメニューを浮かびあがらせることができるビューです。
このクラスはライブラリ化されておらず、ソースやリソースをダウンロードして自分のプロジェクトに組み込んで使ったり、自由に改造したりできます。
QuickActionプロジェクトのダウンロード
QuickActionは以下のサイトからダウンロードできます。
https://github.com/lorensiuswlt/NewQuickAction
上のサイトにアクセスしたら「Download ZIP」というボタンが右にあるのでそこからZIPファイルとしてプロジェクトごとダウンロードします。
その後、zipファイルをどこか分かりやすいフォルダに解凍します。
プロジェクトとしてQuickActionを追加する
まず、eclipse上で「New」メニューをクリックして次の画面をだします。
そこで「Android Project From Existing Code」を選び、次に進むとプロジェクトを選ぶ画面が出てくるので解凍したフォルダを「Root Directory」に指定して「Finish」を押します。
すると「NewQuickAction」がワークスペースにプロジェクトとして追加されます。
最後にNewQuickActionプロジェクトのproject.propertiesファイルを開き、次のようにandroid.libraryをtrueにします。
android.library=true target=android-18
自分のアプリにQuickActionを組み込む
次に自分のアプリのあるプロジェクトのプロパティ画面を出し、そこで下の画像のようにNewQucikActionをライブラリとして追加します。
また、プロパティ画面上で「Java Build Path」を選び、そこの「Projects」タブに進み、次のようにNewQuickActionを「Add」ボタンで追加します。
「Order and Export」タブでもNewQuickActionにチェックをつけるのを忘れないようにします。
以上でQuickActuionが使えるようになりました。
使用例
QuickActionの簡単な使用例が次のコードです。
package com.MyApp.myapp; /*中略*/ import net.londatiga.android.ActionItem; import net.londatiga.android.QuickAction; public class MainActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); int phoneItemId = 0, mailItemId = 1; //クイックアクションに表示するアイテム ActionItem phoneItem = new ActionItem(phoneItemId, "Phone", getResources().getDrawable(R.drawable.phone_icon)); ActionItem mailItem = new ActionItem(mailItemId, "Mail", getResources().getDrawable(R.drawable.mail_icon)); //クイックアクションのメニューバーの作成 final QuickAction qa = new QuickAction(this); qa.addActionItem(phoneItem); qa.addActionItem(mailItem); //ActionItemがクリックされたときの処理 qa.setOnActionItemClickListener(new QuickAction.OnActionItemClickListener() { @Override public void onItemClick(QuickAction quickAction, int pos, int actionId) { ActionItem item = quickAction.getActionItem(pos); //タッチされた場所のアイテムを取得 } }); //クイックアクションが選択解除されたときの処理 qa.setOnDismissListener(new QuickAction.OnDismissListener() { @Override public void onDismiss() {} }); Button showQAButton = (Button)findViewById(R.id.show_exm_quicka_action_btn); showQAButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //クイックアクションを表示する。 qa.show(v); qa.setAnimStyle(QuickAction.ANIM_AUTO); } }); } }
ボタンが押されると次のようなメニューがフローして表示されます。
もし、コードがうまく動かない場合はプロジェクト全体をクリーンしてみてください。