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をライブラリとして追加します。

QuickActionをライブラリに追加している画像

また、プロパティ画面上で「Java Build Path」を選び、そこの「Projects」タブに進み、次のようにNewQuickActionを「Add」ボタンで追加します。

eclipseのProjectタブの画像

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);
            }
        });
    }
}

ボタンが押されると次のようなメニューがフローして表示されます。

QuickActionの表示例

もし、コードがうまく動かない場合はプロジェクト全体をクリーンしてみてください。

関連項目
プライバシーポリシー