つ部 android 勉強会 2013年9月 発表資料
TRANSCRIPT
AppCompat使ってみました
2013/9/14 つ部 Android 勉強会 2013年9月@nagakenjs
自己紹介Twitter ID:@nagakenjs(ながけん)
お仕事:ソフト屋さんです。Java屋さんのはずですがCやC++もよく書きます。Androidの中の人になることが多いです。
たまに.NET Micro Frameworkで遊んでます。年末にかけて何かするかも。
あなたのアプリにActionBarはありますか?
ActionBar
こいつです
Honeycombより追加されたメニュー構造
アイコン、検索ボックス、ドロップダウンメニューなどを配置可能
Andriodのシェア
http://developer.android.com/about/dashboards/index.html
2.2/2.3のシェアが3割まだまだサポート捨てられない
ActionBar Sherlok
Andriod 2.xでActionBarが利用可能
サードパーティ製ライブラリ
http://actionbarsherlock.com/
v7 appcompat libraryAndroid 2.1以降で使えるActionBarライブラリ
Android Support Library Rev.18で導入
Google謹製!
導入方法(Eclipse)Action Bar用のサブプロジェクトを作成
<SDK>/extras/android/support/v7/appcompat をインポート
アプリからサブプロジェクトを参照
導入方法 (Android Studio)
プロジェクトを作る時のウィザードで「Action Bar」にチェックを付ける(0.2.7から)
またはbuild.gradleに以下を設定
dependencies { compile 'com.android.support:appcompat-v7:18.0.0' compile 'com.android.support:support-v4:18.0.0'}
どうやって使うの?
利用方法(その1)Activity を ActionBarActivityに置き換える
テーマをAndroidManifest.xmlに設定する
Theme.AppCompatTheme.AppCompat.LightTheme.AppCompat.Light.DarkActionBar
public class MainActivity extends ActionBarActivity
利用方法(その2)メニューは標準APIが使用可能
ActionBarで拡張された部分はMenuItemCompatを使用
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { MenuItem item = menu.add(0, MENU_ID, Menu.NONE, "menu"); MenuItemCompat.setShowAsAction( item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM); super.onCreateOptionsMenu(menu, inflater);}
利用方法(その3)XMLファイルでメニューを扱う場合
ActionBar拡張部分は別途名前空間を定義する
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/menu_settings" android:icon="@drawable/ic_menu_preferences" android:title="@string/menu_settings" yourapp:showAsAction="ifRoom" /></menu>
利用方法(その4)android.support.v7.app.ActionBar
appcompatで追加
android.app.ActionBarとAPIの互換性あり
// ActionBarActivityのメソッド内ActionBar actionBar = getSupportActionBar();
つまずく点ListActivityの代替クラスがない
ListFragmentを使うべき?
Andriod Studioでテーマが使えない
0.2.7にバージョンアップする
ActionBar Sherlockとの違いは?
ActionBarSherlockとの違い
各ライブラリのクラス数・リソース数
クラス数リソース数(png + xml)
AppCompat
ActionBar Sherlock
56ファイル 291ファイル
87ファイル 341ファイル
ActionBarSherlockとの違い
AppCompat ActionBarSherlock
• ActionBar基本機能
•タブバー•ポップアップメニュー•検索ビュー•共有
• ActionBar基本機能
•各種Activityの拡張
•各種Fragmentの拡張
•タブバー•メニューの拡張•ポップアップメニュー•検索ビュー•共有
ActionBarSherlockとの違い
apkのサイズ
• Android StudioでHello Worldプロジェクトを作成
• build.gradleにDebug版とRelease版のapkを作るよう設定
Debug Release
AppCompat
ActionBar Sherlock
651,819 byte 635,201 byte
731,848 byte 708,439 byte
まとめAndroid 2.1からActionBarが利用可能
Activityやテーマを置き換えて使う
ActionBar Sherlockと比べるとコンパクト
標準提供されているので導入が容易