編輯:關於Android編程
1. app 圖標:包含了 圖標,主標題,副標題,回退部分
2. 視圖控件:允許用戶切換視圖。視圖切換控件的樣式有下拉菜單或選項卡控件,d對應了,標准,list,tab,3種導航模式
3. 操作按鈕:在操作欄裡,展示出你的 app 中最重要的操作。不能展示在操作欄裡的操作,可以自動移到“更多操作”裡
4. 更多操作:把不常用的操作放到更多操作裡
用來顯示標題和回退的
相關Api的使用
// 獲取ActionBar mActionBar = getSupportActionBar(); mActionBar.setTitle("MainTitle");// 設置主title部分 mActionBar.setSubtitle("SubTitle");// 設置子title部分 mActionBar.setIcon(R.drawable.ic_launcher);// 設置應用圖標 mActionBar.setDisplayShowTitleEnabled(true);// 設置菜單 標題是否可見 mActionBar.setDisplayShowHomeEnabled(true);// 設置應用圖標是否 mActionBar.setDisplayUseLogoEnabled(false);// 設置是否顯示Logo優先 mActionBar.setDisplayHomeAsUpEnabled(true);// 設置back按鈕是否可見
List模式
通過ActionBar設置導航模式
// actionBar的導航模式---List mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
在List模式下設置數據的適配以及監聽
// 初始化數據 final Listobjects = new ArrayList (); objects.add("主頁"); objects.add("新聞"); objects.add("娛樂"); // 創建adapter ArrayAdapter adapter = new ArrayAdapter (this, android.R.layout.simple_list_item_1, objects); // 創建監聽 OnNavigationListener listener = new OnNavigationListener() { @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { Toast.makeText(getApplicationContext(), objects.get(itemPosition) + "", Toast.LENGTH_SHORT).show(); return false; } }; // 給ActionBar設置List導航模式下的數據適配和監聽 mActionBar.setListNavigationCallbacks(adapter, listener);
Tab模式
通過ActionBar設置Tab模式
// actionBar的導航模式---TAB mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
在Tab模式下設置數據的適配以及監聽
final ListmTabs = new ArrayList(); for (int i = 0; i < 3; i++) { //創建tab Tab tab = mActionBar.newTab(); tab.setText("tab" + (i + 1)); tab.setIcon(R.drawable.ic_launcher); mTabs.add(tab); //設置Tab的監聽 tab.setTabListener(new TabListener() { @Override public void onTabUnselected(Tab tab, FragmentTransaction ft) { Toast.makeText(getApplicationContext(), tab.getText() + "取消選中了", Toast.LENGTH_SHORT).show(); } @Override public void onTabSelected(Tab tab, FragmentTransaction ft) { Toast.makeText(getApplicationContext(), tab.getText() + "選中了", Toast.LENGTH_SHORT).show(); } @Override public void onTabReselected(Tab tab, FragmentTransaction ft) { Toast.makeText(getApplicationContext(), tab.getText() + "重新選中了", Toast.LENGTH_SHORT).show(); } }); //將tab添加到actionBar中 mActionBar.addTab(tab); }
創建Action button
復寫 activity 的 onCreateOptionsMenu()方法
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); // 將布局掛載到menu上 inflater.inflate(R.menu.main, menu); return super.onCreateOptionsMenu(menu); }
給menu創建對應的menu 的xml文件
低版本適配的說明:
在menu對應的xml文件的根節點,需要聲明 自定義命名空間:
code
xmlns:heima="http://schemas.android.com/apk/res-auto"
item中的屬性 showAction 命名空間需要設置成自定義的ShowAction的取值說明:
always : 總是顯示 ifroom : 如果放的下去,就顯示(溢出菜單) never : 從不顯示 withText: 和文本一起顯示 collapseActionView: 折疊顯示Menu菜單的類型:
Group菜單 裡面可以放置Item結點 子菜單 Item裡面可以放置Menu結點actionViewClass屬性
響應Action Button 事件
復寫onOptionsItemSelected()響應item事件@Override public boolean onOptionsItemSelected(MenuItem item) { return super.onOptionsItemSelected(item); }
searchView
- SupportMenuItem supportMenuItem = (SupportMenuItem) item; SearchView searchView = (SearchView) supportMenuItem.getActionView();
呼出Action Mode功能
startActionMode(Callback);
低版本中
startSupportActionMode(Callback);
Action Mode的回調(Callback)
// 創建action mode時的回調 @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { getMenuInflater().inflate(R.menu.action_mode, menu); // 返回true說明有action mode return true; } // 准備開始起時的回調 @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { // TODO Auto-generated method stub return true; } // action mode中的item被點擊時的回調 @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } //action mode 銷毀時的回調 @Override public void onDestroyActionMode(ActionMode mode) { Toast.makeText(this, "關閉了", Toast.LENGTH_SHORT).show(); }
Android Studio + Gradle的組合用起來非常方便,很多第三方開源項目也早都遷移到了Studio,為此今天就來介紹下查看、編譯並導入第三方開源項目的方法。
第8節 橫屏的播放界面在設備旋轉成橫屏的時候,視頻將自動進行全屏播放。8.1 播放器橫屏布局我們要為全屏播放界面設置一個新的布局,這個布局裡面只用來播放視頻,不需要顯示任
一 相關下載(1) java JDK下載:進入該網頁: http://java.sun.com/javase/downloads/index.jsp (或者
MSM8909+Android5.1.1SPI驅動開發(PSAM部分) 1. PSAM部分的硬件設計 圖1CS 片選信號SCK 時鐘信號MISO 主設