ActionBar的使用(1)
ActionBar的使用(一)
ActionBar的组成:
[1]appicon:图标区,显示应用程序图标,也可以自定义。
[2]ViewControl:导航区,可以设置Tab导航,下拉导航和标题栏。
[3]actionbuttons:按钮区,添加按钮。
[4]actionoverflow:菜单区,显示不下的按钮自动添加到这里,有Menu按键的手机不显示,只能通过按键呼叫。
ActionBar的使用(兼容2.x):
使用API>18,导入Support V7包。
import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity;使当前Activity 继承 ActionBarActivity。
public class MainActivity extends ActionBarActivity获取当前ActionBar。
ActionBar actionBar = getSupportActionBar();配置ActionBar。
//设置图标 actionBar.setIcon(R.drawable.ic_launcher); //自定义字体 SpannableString spannableString = new SpannableString("TimeToDo"); //设置字体 spannableString.setSpan(new TypefaceSpan("monospace"), 0, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //字体大小 spannableString.setSpan(new AbsoluteSizeSpan(20,true), 0, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //字体颜色 spannableString.setSpan(new ForegroundColorSpan(Color.MAGENTA), 0, spannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //设置标题 actionBar.setTitle(R.string.action_bar_Title); //设置背景 actionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.abc_ic_ab_back_holo_dark)); //显示图标 actionBar.setDisplayShowHomeEnabled(true); //显示标题 actionBar.setDisplayShowTitleEnabled(true); //显示返回按钮 actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true);
ActionBar添加按钮:
ActionBar添加按钮的方法与添加菜单的方法相同。
//添加菜单 @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } //处理按钮 @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }
处理返回按钮。
在onOptionsItemSelected中处理MenuItem Id为home或homeasup即可。
if (id == R.id.home) { Intent intent = new Intent(MyActivity.this, MainActivity.class); startActivity(intent); return true; }
菜单的资源文件。
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context="com.example.zhuajimazi.MainActivity" > <item android:id="@+id/action_settings" android:orderInCategory="100" android:icon="@drawable/settings" android:title="@string/action_settings" app:showAsAction="ifRoom"/> <item android:id="@+id/action_update" android:orderInCategory="100" android:icon="@drawable/update" android:title="@string/action_update" app:showAsAction="ifRoom"/> <item android:id="@+id/action_about" android:orderInCategory="100" android:icon="@drawable/about" android:title="@string/action_about" app:showAsAction="ifRoom"/> <item android:id="@+id/action_exit" android:orderInCategory="100" android:icon="@drawable/exit" android:title="@string/action_exit" app:showAsAction="ifRoom"/> </menu>