ShareActionProvider设置自定义共享图标没有Ac

ShareActionProvider设置自定义共享图标没有Ac

本文介绍了在动作条ShareActionProvider设置自定义共享图标没有ActionBarSherlock的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我有同样的问题,在这里被描述 - Setting在动作条ShareActionProvider 自定义共享图标

I have the same problem as was described here - Setting a custom share icon on Actionbar ShareActionProvider

但是我'不使用ActionBarSherlock
我发现福尔摩斯主题使用 actionModeShareDrawable ,我也可以这样使用它,如果我不使用 ActionBarSherlock

But I'am not using ActionBarSherlock
I found that the Sherlock theme uses the "actionModeShareDrawable" and I can also use it like this, if I don't use ActionBarSherlock

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

这正常工作对我的关系5,但未能在许多其他设备
所以我的问题是,如何更改图标不使用ActionBarSherlock

This works fine on my nexus 5, but failed on many other devices
So my question is, how to change that icon without using ActionBarSherlock

推荐答案

您也可以继承ShareActionProvider,覆盖只有构造函数和createActionView()。

You can subclass ShareActionProvider, overriding only the constructor and createActionView().

在这里,你可以从超级视图,铸造它ActivityChooserView所以你能打电话setExpandActivityOverflowButtonDrawable(绘制对象)来更改图标。

From here, you can get the View from super, casting it to ActivityChooserView so you can callsetExpandActivityOverflowButtonDrawable(Drawable) to change the icon.

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;
    }
}

这篇关于在动作条ShareActionProvider设置自定义共享图标没有ActionBarSherlock的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 18:39