Facebook Android SDKにはcom.facebook.widget.LoginButton
があります
[ログイン]ボタンに自分の画像を配置したい。出来ますか ?
これまでのところ、Android:src="@drawable/facebook"
をボタン要素の属性としてレイアウトファイルに追加しようとしましたが、運がありません
テキストを空の文字列にオーバーライドし、ボタンの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);
回避策のようなものですが、Facebook SDKコードを変更するよりも(これも非常に簡単ですが)好みで、バージョンを更新するたびに更新することを心配しています。
はい、テキストと画像の両方を変更したい場合は、以下のコードを書きます。
authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setBackgroundResource(R.drawable.icon);
authButton.setText("Login");
authButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);`
別の方法
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ファイルの2つのボタンのコードを記述する必要があります。 1つは、デフォルトのFacebookボタン用です(最初のステップでは非表示にしています)。 2番目はカスタムボタン用です