我想在我的Android应用程序上使用我的自定义按钮,而不是使用默认的Facebook按钮(LikeView)。 我正在使用Facebook SDK for Android。 如何实现自定义按钮?
答案 0 :(得分:2)
因为它是Android,你可以完全自定义一切。例如,我创建了自定义LikeView示例。您可以设置您想要的任何颜色,但尝试考虑Facebook约定。
规则如下:
在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。
他们是神奇的地方。
在您自己的按钮上,设置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。