实现自定义Facebook喜欢按钮而不是使用Facebook的默认喜欢按钮(LikeView)?

时间:2015-09-07 08:30:36

标签: android facebook facebook-like facebook-android-sdk

我想在我的Android应用程序上使用我的自定义按钮,而不是使用默认的Facebook按钮(LikeView)。 我正在使用Facebook SDK for Android。 如何实现自定义按钮?

2 个答案:

答案 0 :(得分:2)

因为它是Android,你可以完全自定义一切。例如,我创建了自定义LikeView示例。您可以设置您想要的任何颜色,但尝试考虑Facebook约定。

enter image description here enter image description here

怎么办?

规则如下:
在Android应用程序中,如果您从任何SDK重新实现资源,它会将其覆盖到您设置的新值 我从FacebookSdk类中找到了这些变量,并在我自己的应用程序中覆盖了它。你也可以这样做 1.将以下样式添加到样式文件并设置自己的选择器。它将覆盖LikeButton选择器

<style name="com_facebook_button_like" parent="com_facebook_button">
    <item name="android:background">@drawable/btn_facebook_like_background_selector</item>
</style> 

2.将以下颜色添加到color.xml文件中。设置你想要的任何颜色。

<color name="com_facebook_likeboxcountview_text_color">#FFFFFFFF</color>
<color name="com_facebook_likeboxcountview_border_color">#FFFFFFFF</color>

答案 1 :(得分:0)

这是可能的,但实际上(Facebook SDK 4.14.1),它是棘手的,他们没有使用下一个SDK版本的保证。

首先,您需要在布局中隐藏LikeView:

<com.facebook.share.widget.LikeView
    android:id="@+id/likeView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone"/>

在LikeView中,他们是一个子视图:LikeButton。

enter image description here

他们是神奇的地方。

在您自己的按钮上,设置OnClickListener并使用以下代码:

@Override
public void onClick(View view) {
    //create custom like view
    LikeView likeView = new LikeView(this.mContext);
    //add view to your mainview
    ((ViewGroup) itemView).addView(likeView);
    //configure facebook like with your page'id or URL
    likeView.setObjectIdAndType(this.getSocialAction().getTarget(), LikeView.ObjectType.PAGE);
    //hide this view
    likeView.setVisibility(View.GONE);
    //Inside this likeView, get the Like button
    final LikeButton button = (LikeButton) ((ViewGroup) likeView.getChildAt(0)).getChildAt(0);
    //perform a click on this likebutton
    button.post(new Runnable() {
        @Override
        public void run() {
            button.performClick();
        }
    });
}

在此之后,当您单击自己的按钮时,会出现likeView。