实现自定义 Facebook 点赞按钮而不是使用 Facebook 的默认点赞按钮 (LikeView)?
Implement custom Facebook like button instead of using Facebook's Default Like Button(LikeView)?
我想在我的 android 应用程序上使用自定义的点赞按钮,而不是使用默认的 Facebook 按钮 (LikeView)。
我正在为 Android 使用 Facebook SDK。
我如何实现自定义“赞”按钮?
因为它是 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.Add 将颜色添加到您的 color.xml 文件中。设置任何你想要的颜色。
<color name="com_facebook_likeboxcountview_text_color">#FFFFFFFF</color>
<color name="com_facebook_likeboxcountview_border_color">#FFFFFFFF</color>
这是可能的,但实际上(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。
我想在我的 android 应用程序上使用自定义的点赞按钮,而不是使用默认的 Facebook 按钮 (LikeView)。 我正在为 Android 使用 Facebook SDK。 我如何实现自定义“赞”按钮?
因为它是 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.Add 将颜色添加到您的 color.xml 文件中。设置任何你想要的颜色。
<color name="com_facebook_likeboxcountview_text_color">#FFFFFFFF</color>
<color name="com_facebook_likeboxcountview_border_color">#FFFFFFFF</color>
这是可能的,但实际上(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。