Можно ли изменить изображение кнопки входа в Facebook в Android Android SDK3?

Facebook Android sdk имеет com.facebook.widget.LoginButton

Я хочу разместить свой собственный образ для кнопки "Вход". Возможно ли это?

До сих пор я пытался добавить android:src="@drawable/facebook" в файл макета как атрибут элемента кнопки без везения

Ответ 1

Я закончил переопределять текст как пустую строку, а затем определял setBackgroundResource кнопки на моем изображении (не нуждался в динамической функции входа/выхода из системы)

<com.facebook.widget.LoginButton
        xmlns:fb="http://schemas.android.com/apk/res-auto"
        android:id="@+id/login_button"
        android:layout_width="249dp"
        android:layout_height="45dp"
        android:layout_above="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="30dp"
        android:layout_marginTop="30dp"
        android:contentDescription="@string/login_desc"
        android:scaleType="centerInside"
        fb:login_text=""
        fb:logout_text="" />

И в коде я определил фоновый ресурс:

final LoginButton button = (LoginButton) findViewById(R.id.login_button);
button.setBackgroundResource(R.drawable.facebook);

Вид обходного пути, но я предпочел это сменить код SDK для Facebook (хотя он очень прямолинейный), и беспокоиться об обновлении каждый раз, когда я обновляю их версию.

Ответ 2

да, если вы хотите изменить текст и изображение, то напишите ниже код.

authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setBackgroundResource(R.drawable.icon);
authButton.setText("Login");
authButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);`

Ответ 3

Другой способ

loginButton = (LoginButton) findViewById(R.id.fb_login_button);
loginButton.setVisibility(View.GONE);




ImageView ivFbCustomButton = (ImageView) findViewById(R.id.iv_fb_custom_button);
ivFbCustomButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        com.facebook.login.widget.LoginButton btn = new com.facebook.login.widget.LoginButton(FacebookActivity.this);
        btn.performClick();
    }
});

Примечание:

Вам нужно написать код для двух кнопок в файле XML. Один для кнопки facebook по умолчанию (мы скрываем его на начальном шаге). Второй для пользовательской кнопки