android – 在没有ActionBarSherlock的情况下在Actionbar ShareActionProvider上设置自定义共享图标

前端之家收集整理的这篇文章主要介绍了android – 在没有ActionBarSherlock的情况下在Actionbar ShareActionProvider上设置自定义共享图标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有与此处描述的相同的问题 – Setting a custom share icon on Actionbar ShareActionProvider

但是我没有使用ActionBarSherlockI发现Sherlock主题使用了“actionModeShareDrawable”,我也可以像这样使用它,如果我不使用ActionBarSherlock

<style name="Theme.MyApp" parent="android:Theme.Holo">
    <item name="*android:actionModeShareDrawable">@drawable/icon</item>
</style>

这在我的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;
    }
}
原文链接:https://www.f2er.com/android/308667.html

猜你在找的Android相关文章