A custom theme like this.
<style name="Theme.mTheme" parent="android:Theme.Holo.Light"> <item name="android:homeAsUpIndicator">@drawable/image_with_whitecolorarrow</item> <item name="homeAsUpIndicator">@drawable/image_with_whitecolorarrow</item> </style>
For custom search:
Define the menu in the menu folder
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/searchIcon" android:actionLayout="@layout/search_icon_actionview" android:icon="@drawable/search_icon" android:showAsAction="ifRoom|collapseActionView" android:title="Search"/> </menu>
searchIcon you can use your own icon. But there must be the correct size of the menu items in the action bar.
specify your custom search, i.e. ..., search_icon_actionview.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_margin="5dp" android:orientation="vertical" > <ImageView android:id="@+id/search_image" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:clickable="true" android:contentDescription="Search icon" android:paddingLeft="5dp" android:paddingRight="5dp" android:src="@drawable/search_icon" /> <AutoCompleteTextView android:id="@+id/search_editText" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_toLeftOf="@id/search_image" android:background="@drawable/rounded_corners_white" android:hint="Search" android:imeOptions="actionSearch" android:padding="5dp" android:singleLine="true" android:textColor="@color/text_dark_grey" android:textColorHint="@color/text_light_grey" android:textSize="20dp" /> </RelativeLayout>

the search icon and the call icon are custom images that I made using the photo store.
Action Code:
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.searchIcon: mEtSearchbar.clearFocus(); (new Handler()).postDelayed(new Runnable() { public void run() { mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain( SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 0, 0, 0)); mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain( SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP, 0, 0, 0)); } }, 100); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.your_menu, menu); mSearchbar = (MenuItem) menu.findItem(R.id.searchIcon); View actionview = mSearchbar.getActionView(); mEtSearchbar = ((AutoCompleteTextView) actionview .findViewById(R.id.search_editText)); final ImageView searchImage = ((ImageView) actionview .findViewById(R.id.search_image)); searchImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { String s = mEtSearchbar.getText().toString(); Intent intent = new Intent(CurrentActivity.this, SearchActivity.class); intent.putExtra("search_string", s); startActivity(intent); } }); mEtSearchbar .setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { searchImage.performClick(); return true; } return false; } }); super.onCreateOptionsMenu(menu, inflater); }