2022年4月16日 星期六

android studio:google和帳號facebook帳號登入-1

(一)加入擴充
//此行以下新增
// 加入google firebase的程式庫
implementation 'com.google.firebase:firebase-bom:29.3.0'

implementation 'com.google.firebase:firebase-auth:21.0.3'
implementation 'com.google.android.gms:play-services-auth:20.1.0'
implementation 'com.firebaseui:firebase-ui-auth:7.2.0'

//加入facebook的程式庫
implementation 'com.facebook.android:facebook-android-sdk:[8,9)'
//facebook login
implementation 'com.facebook.android:facebook-login:12.0.0'
implementation 'com.google.firebase:firebase-messaging:23.0.2'
implementation 'com.google.firebase:firebase-messaging-directboot:23.0.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.navigation:navigation-fragment:2.4.2'
implementation 'androidx.navigation:navigation-ui:2.4.2'

implementation "androidx.viewpager2:viewpager2:1.0.0"
(二)建立介面
(1)登入xml介面 login_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".LoginActivity">



<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:minHeight="48dp"
android:text="@string/Et_Mail"
android:paddingRight="2dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:background="@drawable/bt_basic"
app:boxBackgroundMode="outline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />


<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@drawable/bt_basic"
android:ems="10"
android:inputType="textPersonName"
android:paddingRight="2dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"

android:minHeight="48dp"
android:text="@string/et_password_text"
app:boxBackgroundMode="outline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/email"
app:passwordToggleEnabled="true" />

<TextView
android:id="@+id/textView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:textAlignment="center"
android:text="@string/tv_login_text"
android:textSize="48sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<Button
android:id="@+id/login"
android:layout_width="0dp"
app:layout_constraintVertical_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:background="@drawable/btn_left"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textSize="20sp"
android:text="@string/btn_login_text"
app:layout_constraintEnd_toStartOf="@+id/register"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password" />

<Button
android:id="@+id/register"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintVertical_weight="1"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:background="@drawable/btn_right"
android:textSize="20sp"
android:text="@string/bt_text_register"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toEndOf="@+id/login"
app:layout_constraintTop_toBottomOf="@+id/password" />

<com.google.android.gms.common.SignInButton
android:id="@+id/btn_google"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="5dp"
android:layoutMode="clipBounds"
app:boxBackgroundMode="outline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/register" />


<com.facebook.login.widget.LoginButton
android:id="@+id/btn_facebook"
android:layout_width="match_parent"
android:layout_height="29dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp"
app:boxBackgroundMode="outline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btn_google"
tools:ignore="TouchTargetSizeCheck" />

</androidx.constraintlayout.widget.ConstraintLayout>

(2)註冊xml介面 register_activity.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".RigisterActivity">

<TextView
android:id="@+id/註冊頁面"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAlignment="center"
android:text="註冊頁面"
android:textSize="48sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="48dp"
android:ems="10"
android:inputType="textPersonName"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:background="@drawable/bt_basic"
android:text="@string/register_et_name"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/註冊頁面" />

<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textPersonName"
android:minHeight="48dp"
android:text="@string/register_et_email"
android:paddingRight="2dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:background="@drawable/bt_basic"
app:boxBackgroundMode="outline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/name" />

<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textPersonName"
android:minHeight="48dp"
android:text="@string/register_et_password"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:background="@drawable/bt_basic"
app:boxBackgroundMode="outline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/email" />
<EditText
android:id="@+id/passwordconf"
android:layout_width="match_parent"
android:layout_height="48dp"
android:layout_marginTop="5dp"
android:ems="10"
android:inputType="textPersonName"
android:paddingRight="2dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:background="@drawable/bt_basic"
android:text="@string/register_et_passwordconf"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password" />

<Button
android:id="@+id/register"
android:layout_width="0dp"
app:layout_constraintVertical_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="10dp"
android:background="@drawable/btn_left"
android:text="@string/btn_register_text"
android:textAlignment="center"
android:textSize="20sp"
app:layout_constraintEnd_toStartOf="@+id/login"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/passwordconf"
/>

<Button
android:id="@+id/login"
android:layout_width="0dp"
app:layout_constraintVertical_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="10dp"
android:background="@drawable/btn_right"
android:text="@string/register_bt_register"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@+id/register"
app:layout_constraintTop_toBottomOf="@+id/passwordconf" />


</androidx.constraintlayout.widget.ConstraintLayout>
(3)配合上面按鈕的xml  
左框 btn_left.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#99CCFF"/>
<stroke android:width="1dp"
android:color="@color/black"
/>
<corners
android:topLeftRadius="5dp"
android:bottomLeftRadius="5dp"/>
</shape>

右框btn_right.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#99CCFF"/>
<stroke android:width="1dp"
android:color="@color/black"
/>
<corners
android:topRightRadius="5dp"
android:bottomRightRadius="5dp"/>
</shape>


(3)配上上方屬性框的xml
bt_basic.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

<stroke
android:width="1dp"
android:color="@color/grey"/>
<corners
android:radius="3dp"
/>
</shape>


(4)color.xml 增以下顏色
//以下新增
<color name="grey">#6C6C6C</color>
<color name="red">#FF0000</color>
<color name="yellow">#FFE153</color>
<color name="orangle">#FF8040</color>
<color name="blue">#0080FF</color>

(5)string.xml增以下字串
<resources>
<string name="app_name">acaoweb</string>
<string name="facebook_app_id">facebooked</string>
<string name="fb_login_protocol_scheme">fb326597452705397</string>
<string name="bt_text_register">帳號註冊</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="tv_login_text">登入頁面</string>
<string name="btn_login_text">帳號登入</string>
<string name="Et_Mail">E_mail</string>
<string name="et_password_text">密碼</string>
<string name="btn_register_text">帳號註冊</string>
<string name="register_et_name">填入姓名</string>
<string name="register_et_email">填入Email</string>
<string name="register_et_password">填入密碼</string>
<string name="register_bt_register">帳號登入</string>
<string name="register_et_passwordconf">密碼確認</string>
<string name="title_activity_slider_menu">sliderMenu</string>
</resources>






沒有留言:

張貼留言