我使用ActionBarSherlock。 我有一个菜单项,我想仅与该菜单项,而不是在动作条他人使用自定义选择。 这是菜单代码:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_include_location"
android:icon="@drawable/icon_place_selector"
android:showAsAction="always"
android:title="@string/menu_include_location"/>
<item
android:id="@+id/menu_send"
android:icon="@drawable/ic_send"
android:showAsAction="ifRoom|withText"
android:title="@string/menu_send"/>
</menu>
这里是icon_place_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/location_place" android:state_pressed="false"/>
<item android:drawable="@drawable/location_no_gradient" android:state_pressed="true"/>
</selector>
问题是,在菜单项,图标只是其中的一小部分。 下面是显示的内容截图。 整个背景应该改变,而不仅仅是图标。 我怎么做?
您可以通过设置在代码中的自定义更改的ActionView特定动作栏项目的选择:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_main, menu);
MenuItem menuItem = menu.findItem(R.id.menu_include_location);
ImageView image = new ImageView(this);
image.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
image.setPadding(16, 0, 16, 0);
image.setImageResource(R.drawable.ic_launcher);
image.setBackgroundResource(R.drawable.icon_place_selector);
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ...
}
});
menuItem.setActionView(image);
return true;
}
如果要更改所有动作栏项目的选择应用这些样式:
<style name="AppTheme" parent="@style/Theme.Sherlock">
<item name="android:selectableItemBackground">@drawable/icon_place_selector</item>
<item name="android:actionBarItemBackground">@drawable/icon_place_selector</item>
</style>
首先你要知道,如果你设置android:selectableItemBackground
在你的全息风格,整个部件,即一个按钮,就会有这样的背景下选择。
如果你只需要改变你的动作条菜单项的图标选择的背景下,这是一个简单的答案!
刚刚成立android:actionBarItemBackground
在你的全息风格!
<style name="AppTheme.Dark" parent="android:Theme.Holo">
<item name="android:actionBarItemBackground">@drawable/item_background_holo_light</item>
</style>
希望有帮助:-)
使用动作条的风格发生器 ,风格你的风格和下载的zip文件
在下载的zip文件打开selectable_background_xxxx.xml(XXXX - >名字给自己的风格)文件中的“可绘制区域”文件夹,并改变你希望在按下状态是真实的绘制到九宫IMG或颜色代码。
<item android:state_pressed="true" android:drawable="@color/your_color" />