Android自定义facebook按钮,图标无法正常加载

时间:2015-07-29 13:40:44

标签: java android facebook android-layout android-activity

我创建了一个自定义的Facebook登录按钮,但按钮上的图标没有正确显示。能帮帮我吗

登录XML:

<Button
            android:id="@+id/login_button"
            style="@style/ParseLoginUI.Button.ThirdPartyLogin"
            android:layout_marginTop="@dimen/com_parse_ui_small_vertical_spacing"
            android:background="@drawable/com_parse_ui_facebook_login_button_background_selector"
            android:drawableLeft="@drawable/com_parse_ui_facebook_login_logo"
            android:text="@string/com_parse_ui_facebook_login_button_label"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true" />

风格:

<style name="ParseLoginUI.Button.ThirdPartyLogin" parent="ParseLoginUI.Button">
    <item name="android:paddingLeft">16dp</item>
    <item name="android:paddingRight">24dp</item>
</style>


<style name="ParseLoginUI.Button" parent="@android:style/Widget.Button">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">48dp</item>
    <item name="android:background">@drawable/com_parse_ui_parse_login_button_background_selector</item>
    <item name="android:textColor">@color/com_parse_ui_parse_login_display_text</item>
    <item name="android:textSize">18sp</item>
</style>

代码:

loginButton = (Button)findViewById(R.id.login_button);
        //loginButton.setBackgroundResource(R.drawable.com_parse_ui_facebook_login_logo); //DONT WORK
        //loginButton.setCompoundDrawablesWithIntrinsicBounds(0, 0,0,0); //DONT WORK

我希望我的按钮看起来像这样 http://i.stack.imgur.com/xKxX3.png enter image description here 最初来自Parse样本

这是它的表现方式 enter image description here

3 个答案:

答案 0 :(得分:1)

无需创建额外的drawable。只需致电

<com.facebook.widget.LoginButton
android:id="@+id/authButtonFb"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

您还需要将其添加到布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fb="http://schemas.android.com/apk/res-auto"

详细信息Login with Facebookcustomize-android-facebook-login-button

如果您使用Android studio,请在build.gradle

中调用它
    dependencies { 
  compile 'com.facebook.android:facebook-android-sdk:4.1.0'
                  }

我希望它会对你有所帮助。

答案 1 :(得分:0)

而不是按钮使用默认的facebook按钮(请添加facebook jar)。它将为您提供相同的输出。

<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp" />

答案 2 :(得分:0)

enter image description here

使用facebook-android-sdk:3.19.0依赖:

<com.facebook.widget.LoginButton
    android:id="@+id/button_facebook_login"
    android:drawableStart="@drawable/com_facebook_inverse_icon"
    android:drawableLeft="@drawable/com_facebook_inverse_icon"
    android:layout_gravity="center_horizontal"
    android:layout_marginLeft="@dimen/activity_horizontal_margin"
    android:layout_marginRight="@dimen/activity_horizontal_margin"
    android:layout_height="wrap_content"
    android:layout_width="match_parent" />

如果您使用facebook-android-sdk:4.20.0,则可绘制图标名为com_facebook_button_login_logo