
【技術部】 [Android] Custom Tabsをカスタマイズして利用してみる。

※カテゴリー【技術部】は技術者向けの記事となります。
![]() |
Chrome Custom Tabsをカスタマイズして利用してみましょう。 |
目的
・タイトルバーの色を変える。
・戻るボタンをアイコンを変える。
・URLを共有する機能を追加する。
・Chrome v45以上が利用できない場合、既存のWebViewを使う。
使用するもの
CustomTabsHelper
サンプルソース
public static void Open(String url,Activity activity){ // ① GoogleChrome v45以上が利用可能か調べる。 String packageName = CustomTabsHelper.getPackageNameToUse(activity); // ② Chrome v45以上が利用できない場合。既存のWebViewを利用する。 if (packageName == null) { Intent intent = new Intent(activity, ItemDetailActivity.class); intent.putExtra("URL", url); activity.startActivity(intent); // Chrome v45以上が利用できる場合。Custom tabsを利用する。 } else { // ③ タイトルバーの色をテーマから取得する。 TypedValue typedValue = new TypedValue(); activity.getTheme().resolveAttribute(R.attr.colorPrimary, typedValue, true); // ④ URLを共有するメニューアイテムを生成する。 final Intent intent = new Intent(Intent.ACTION_SEND) .setType("text/plain") .putExtra(Intent.EXTRA_TEXT, url); final PendingIntent pendingIntent = PendingIntent.getActivity(activity, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // ⑤ 戻るボタンを×から←に変更。 Bitmap backbutton = BitmapFactory.decodeResource(activity.getResources(), R.drawable.abc_ic_ab_back_mtrl_am_alpha); // ⑥ CustomTabsを生成する。 final CustomTabsIntent tabsIntent = new CustomTabsIntent.Builder() .setShowTitle(true) // タイトルを表示する。 .setToolbarColor(typedValue.data) // タイトルカラーを変更する。 .setCloseButtonIcon(backbutton) // 戻るアイコンを変更する。 .addMenuItem("URLを共有する", pendingIntent) // 共有機能を追加する。 .build(); // ⑦ CustomTabsでの実行を明示する。 tabsIntent.intent.setPackage(packageName); // Chromeの起動 tabsIntent.launchUrl(activity, Uri.parse(strURL)); }
説明
①
CustomTabsHelperの機能を使ってChrome v45以上が利用可能か調べます。
CustomTabsHelperはここから取得できます。
②
CustomTabsHelper.getPackageNameToUse(activity)の戻り値がNullの場合、Chrome v45が利用不可能な状態です。
③
テーマのcolorPrimaryの色情報を取得します。
④
URLの情報をPendingIntentにセットします。
PendingIntent.getActivityの第三引数はPendingIntent.FLAG_UPDATE_CURRENTを指定しないと、urlが更新されないので注意してください。
⑤
←アイコンのBitmapを生成します。
⑥
CustomTabsを生成します。
⑦ 【2016/05/21追記】
CustomTabsでの起動を明示する。
端末によってはこれを指定しないとブラウザ選択画面がでてしまう。
出力結果

- 関連記事
-
- 2chまとめショータイムのバージョンアップのお知らせ
- 【技術部】 [Android] AbstractなRecyclerView.Adapterの実装例
- 【技術部】 [Android] Custom Tabsをカスタマイズして利用してみる。
- 【技術部】 Pythonで東証のホームページから売残情報を抽出する 第3回 - Excelファイルの内容を抽出する
- 【技術部】 Pythonで東証のホームページから売残情報を抽出する 第2回 - Excelファイルの取得
- この記事へのリアクション
コメントの投稿
タグ:技術部AndroidChromeCustomtabs