Mar*_*tin 6 android android-xml android-icons android-actionbar android-actionmode
我遇到了与此处描述的相同的问题 - 在Actionbar ShareActionProvider上设置自定义共享图标
但是
我没有使用ActionBarSherlock 我发现Sherlock主题使用了" actionModeShareDrawable ",我也可以像这样使用它,如果我不使用的话ActionBarSherlock
<style name="Theme.MyApp" parent="android:Theme.Holo">
<item name="*android:actionModeShareDrawable">@drawable/icon</item>
</style>
Run Code Online (Sandbox Code Playgroud)
这在我的nexus 5上运行正常,但在许多其他设备上失败
所以我的问题是,如何在不使用ActionBarSherlock的情况下更改该图标
您可以继承ShareActionProvider,仅覆盖构造函数和createActionView().
从这里,您可以从Super获取View,将其转换为ActivityChooserView,以便您可以调用setExpandActivityOverflowButtonDrawable(Drawable)来更改图标.
package com.yourpackagename.whatever;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v7.internal.widget.ActivityChooserView;
import android.support.v7.widget.ShareActionProvider;
import android.view.View;
import com.yourpackagename.R;
public class CustomShareActionProvider extends ShareActionProvider {
private final Context mContext;
public CustomShareActionProvider(Context context) {
super(context);
mContext = context;
}
@Override
public View onCreateActionView() {
ActivityChooserView chooserView =
(ActivityChooserView) super.onCreateActionView();
// Set your drawable here
Drawable icon =
mContext.getResources().getDrawable(R.drawable.ic_action_share);
chooserView.setExpandActivityOverflowButtonDrawable(icon);
return chooserView;
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1962 次 |
最近记录: |