So here you can see my button_custom.xml file.
Now you'll notice I put it in res drawable and
I just called it button_custom.xml file.
On it I have my selector,
and my selector uses the Standroid Android naming scheme.
And within my selector, I then have four items.
These items are for signin_pressed where state_pressed is true,
signin_focus drawable when stay_focused is true, signin_disabled drawable
when enabled is false, and then just the normal drawable for everything else.
It's good practice to put your normal drawable at the bottom of the list.
So remember state_pressed is true, will give you your signin_pressed graphic,
state_focused is true, will give you your signin_focus.
The slightly different one is when it's disabled and
you want that ghosted image that we saw earlier on.
And that's where state_enabled equals false,
there's no state_disabled equals true.
Just watch out for that one.
And then of course like I said, your normal one is last.
Now let's take a look at how that changes my button definition
within my main activity.
So here's my activity main layout, and you can see the button here.
First of all notice that I've just change my button from being the sign in
button to just a standard button.
So then the standard button, if you look at the background setting,
I've set it to drawable/button_custom, so
that's telling the system to use button_custom.xml.
If you have named your xml file something else,
just make sure that you use the drawable here.
I've also made a couple of other changes.
Buttons in Android always default so that their text is all in capitals.
But we wanted to have a sign in with capital S, capital I.
So I change it so that text all caps is false and
then my Android text sign in will work properly.
I get capital S, capital I.
You could also take that text and load it into a string resource, but
I've just hardcoded it here, just for brevity.
You can also take that string and load it into a string resource, but
I've just left it in here, for brevity.
Finally, because we've changed our sign in button to a button so
that we can customize it, we have to refactor our a code a little bit.
So let's go and take a look at the changes on the main activity.
It's pretty straight forward.
Earlier I had a sign in button called M sign in button.
I'm just changing that to be a button.
Then when I'm creating the click handler, I just cast the fine view by ID
sign in button to a button instead of a sign in button, and
then nothing else changes.
Let's take a look at what the app would look like now with a nice Google sign-in
button, instead of the red branded button that you saw earlier.
And here, you can see the same app.
I've just laid out the buttons differently,
I laid them out vertically instead of horizontally.
But, now you can see I have this Sign In button instead of the red
Google Plus Sign In button.
And when I touch that, I Sign In as before.
As you can see I'm signed into my app and I still have to sign out and
revoke access button similar to what we had earlier on.
So that's just what the new customized Sign In button looks like and
that's more in line with the web sign in etc.
etc. And it adheres
to the sign in guidelines that we saw in the earlier videos.
يمكنكم أن تروا هنا ملف button_custom .xml.
الآن ستلاحظون أني وضعته في drawable الموجود ضمن res و
وأسميته button_custom.xml.
ويوجد به المحدد،
ويستخدم المحدد نظام تسمية Standroid Android.
وبداخل المحدد، لدي أربعة عناصر.
حيث تكون هذه العناصر لـ signin_pressed عندما تكون قيمة state_pressed هي true،
signin_focus drawable عندما تكون قيمة stay_focused هي true، وsignin_disabled drawable
عندما تكون قيمة enabled هي false ثم normal drawable بالنسبة إلى كل شيء آخر.
يفضل أن تضع drawable العادي الخاص بك في أسفل القائمة.
تذكر أن state_pressed عندما تكون true سوف تقدم لك الرسم signin_pressed،
بينما عندما تكون state_focused بقيمة true، فسوف تقدم لك الرسم signin_focus.
هذه الصورة المختلفة قليلاً تكون في حالة التعطيل و
تريد تلك الصورة الشفافة التي شاهدتها مسبقًا.
وهنا فإن قيمة state_enabled تساوي false،
ولا يوجد state_disabled تساوي true.
فقط لاحظ ما يحدث مع ذلك المثال.
وبالطبع كما ذكرت تكون الحالة الطبيعية هي الأخيرة.
الآن لنلقِ نظرة على كيفية تأثير ذلك على تغيير تعريف الزر
بداخل النشاط الأساسي.
ها هو تخطيط النشاط الأساسي ويمكنك مشاهدة الزر هنا.
أولاً لاحظ أني قمت فورًا بتغيير الزر من زر تسجيل الدخول
إلى فقط زر قياسي.
بعد أن أصبح زرًّا قياسيًّا، إذا قمت بالنظر في إعداد الخلفية،
تجد أني قمت بتعيينه إلى drawable/button_custom، لذا
حيث يخبر ذلك النظامَ بأن يستخدم button_custom.xml.
إذا كنت قد قمت بتسمية ملف xml باسم آخر،
فقط تأكد من أنك تستخدم drawable هنا.
لقد قمتُ أيضًا بتغييرين آخرين.
تكون الأزرار في Android افتراضية دائمًا ولذلك تكون حروفها جميعًا كبيرة.
ولكننا نريد أن نجعل الزر sign in يشتمل على الحرف الكبير S والحرف الكبير I.
أستطيع تغيير ذلك بحيث تكون قيمة الأحرف الكبيرة للنص هي false و
يعمل تسجيل الدخول إلى نص Android بشكل جيد.
لقد حصلت على الحرفين الكبيرين S وI.
يمكنك أيضًا أن تأخذ هذا النص وتقوم بتحميله إلى مصدر سلسلة، ولكن
لقد قمت فورًا بإجراء الترميز الثابت له هنا، فقط للاختصار.
يمكنك أن تأخذ تلك السلسلة أيضًا وتقوم بتحميلها إلى مصدر سلسلة، ولكن
تركتها هنا، للاختصار.
وأخيرًا، لأننا قمنا بتغيير زر sign in إلى زر
نستطيع تخصيصه، يجب إعادة بناء التعليمة البرمجية قليلاً.
لنذهب ونلقِ نظرة على التغييرات في النشاط الأساسي.
إنه مباشر وواضح.
لقد كان لديَّ فيما سبق زر sign in باسم M sign in.
أقوم فقط بتغييره إلى زر.
وعندما أقوم بإنشاء معالج النقر، يتم تحويل زر ID
sign in إلى زر عادي بدلاً من زر sign in، و
لا يحدث أي تغيير آخر.
لنلقِ نظرة على شكل التطبيق الآن مع زر Google sign-in
بدلاً من الزر الذي كان يظهر باللون الأحمر فيما سبق.
وتستطيع هنا أن ترى نفس التطبيق.
لقد قمت بوضع الأزرار بشكل مختلف،
قمت بوضعهم رأسيًا لا أفقيًا.
ولكن الآن يمكن أن تشاهد الزر Sign In بدلاً من زر
Google Plus Sign In الأحمر.
وعندما ألمس ذلك الزر، أقوم بتسجيل الدخول كما سبق.
كما ترى لقد قمتُ بتسجيل الدخول إلى التطبيق ولا يزال لدي الزران sign out و
revoke access كما شاهدنا مسبقًا.
هكذا يبدو زر Sign In المخصص الجديد و
ويتوافق أكثر مع تسجيل الدخول إلى الويب وما شابه.
ويلتزم
بإرشادات تسجيل الدخول التي شاهدناها في الفيديوهات السابقة.
Así que aquí usted puede ver mi button_custom.xml file.
Ahora te darás cuenta de que puse que puse mi red estirable
Acabo de enviar a button_custom.xml file.
En ella tengo mi selector
y mis usos del selector el esquema de nomenclatura Standroid Android
Y dentro de mi selector Entonces tengo cuatro elementos
Estos artículos son para ingresar_presionado donde el estado_presionando es cierto.
ingresar_centrarse cuando la estancia sea estirable_centrado es cierto el presionado_discapacitado lo estirable
cuando está activado es falso, y luego sólo el dibujable normal para todo lo demás
Es una buena práctica para poner su normalidad Disponibles en la parte inferior de la lista.
Así que recuerde el estado_presionado si es cierto darle presionado_gráfico presionado
estado_enfocado es cierto le dará su presionado_atención.
El ligeramente diferente es cuando se ha desactivado
desea que la imagen se agrande que vimos anteriormente
y es ahí donde estado_permitido es igual falso
no hay estado_personas con discapacidad es lo mismo
solo ten cuidado con uno
y luego por supuesto como e dicho su ser normal es pasado
ahora echemos un vistazo a como a como cambia mi definicion
dentro de mi actividad
Así que aquí está mi actividad principal el diseño y se puede ver en el botón
ante todo aviso que acabo de cambiar mi botón de ser el signo.
botón para un solo botón estandar
entonces el botón estándar si nos fijamos en la configuración de fondo
he puesto a estirable / botón_personalizado asi que
que esta diciendo el sistema botón para utilizar_personalizado.xml.
si usted a nomabrado su archivo xml y algo mas
sólo asegúrese de que usted utilizar el dibujable aquí
También he hecho un par de otros cambios.
Los botones de Android siempre por defecto por lo que que su texto es todo en mayúsculas
Pero queríamos tener un signo con S mayúscula , capital I.
Así lo cambio por lo that text all caps is false and
entonces mi signo texto Android en funcionará correctamente .
Me sale de capital S , capital I.
También puede tomar ese texto y cargarlo en un recurso de cadena , pero
Acabo hardcoded aquí simplemente por razones de brevedad
También puede tomar esa cadena y cargarlo en un recurso de cadena , pero
Yo sólo he dejado aquí , por razones de brevedad
Finalmente, debido a que hemos cambiado nuestro signo en el botón para un botón de modo
que podemos personalizarlo , tenemos que refactorizar nuestro código un poco.
Así que vamos a ir y echar un vistazo a los cambios en la actividad principal.
Es bastante sencillo.
Anteriormente tuve un cartel en el botón llamada M signo de botón.
sólo estoy cambiando que para ser un botón
Luego, cuando estoy creando el clic controlador , sólo echo la vista bien por ID
ingresa botón para un botón en lugar de un signo en el botón y,
entonces nada más cambios
Echemos un vistazo a lo que la aplicación se parecerse ahora con un bonito Google inscribirse en
botón , en lugar de los de marca roja botón que has visto antes.
Y aquí , se puede ver la misma aplicación .
Yo sólo he presentado los botones de manera diferente
Yo les presenté verticalmente en lugar de horizontalmente
Pero , ahora se puede ver que tengo esta Ingresa botón en lugar de los números rojos
Google Plus botón Iniciar sesión .
Y cuando me toque que Yo Entrar como antes.
Como se puede ver que estoy firmé en mi aplicación y todavía tienen que firmar y
revocar botón de acceso similar a lo que teníamos anteriormente.
Así que eso es justo lo que el nuevo personalizar Iniciar sesión botón Aspecto del producto y
eso es más acorde con the web sign in etc.
Etc Y se adhiere
a la señal en las directrices que vimos en los videos anteriores
Así que aquí usted puede ver mi button_custom.xml file.
Ahora te darás cuenta de que puse que puse mi red estirable
Acabo de enviar a button_custom.xml file.
En ella tengo mi selector
y mis usos del selector el esquema de nomenclatura Standroid Android
Y dentro de mi selector Entonces tengo cuatro elementos
Estos artículos son para ingresar_presionado donde el estado_presionando es cierto.
ingresar_centrarse cuando la estancia sea estirable_centrado es cierto el presionado_discapacitado lo
cuando está activado es falso, y luego sólo el dibujable normal para todo lo demás
Es una buena práctica para poner su normalidad Disponibles en la parte inferior de la lista.
Así que recuerde el estado_presionado si es cierto darle presionado_gráfico presionado
estado_enfocado es cierto le dará su presionado_atención.
El ligeramente diferente es cuando se ha desactivado
desea que la imagen se agrande que vimos anteriormente
y es ahí donde estado_permitido es igual falso
no hay estado_personas con discapacidad es lo mismo
solo ten cuidado con uno
y luego por supuesto como e dicho su ser normal es pasado
ahora echemos un vistazo a como a como cambia mi definicion
dentro de mi actividad
Así que aquí está mi actividad principal el diseño y se puede ver en el botón
ante todo aviso que acabo de cambiar mi botón de ser el signo
botón para un solo botón estandar
entonces el botón estándar si nos fijamos en la configuración de fondo
he puesto a estirable / botón_personalizado asi que
que esta diciendo el sistema botón para utilizar_personalizado.xml.
si usted a nomabrado su archivo xml y algo mas
sólo asegúrese de que usted utilizar el dibujable aquí
También he hecho un par de otros cambios.
Los botones de Android siempre por defecto por lo que que su texto es todo en mayúsculas
Pero queríamos tener un signo con S mayúscula , capital I.
Así lo cambio por lo that text all caps is false and
entonces mi signo texto Android en funcionará correctamente .
Me sale de capital S , capital I.
También puede tomar ese texto y cargarlo en un recurso de cadena , pero
Acabo hardcoded aquí simplemente por razones de brevedad
También puede tomar esa cadena y cargarlo en un recurso de cadena , pero
Yo sólo he dejado aquí , por razones de brevedad
Finalmente, debido a que hemos cambiado nuestro signo en el botón para un botón de modo
que podemos personalizarlo , tenemos que refactorizar nuestro código un poco.
Así que vamos a ir y echar un vistazo a los cambios en la actividad principal.
Es bastante sencillo.
Anteriormente tuve un cartel en el botón llamada M signo de botón.
sólo estoy cambiando que para ser un botón
Luego, cuando estoy creando el clic controlador , sólo echo la vista bien por ID
ingresa botón para un botón en lugar de un signo en el botón y,
entonces nada más cambios
Echemos un vistazo a lo que la aplicación se parecerse ahora con un bonito Google inscribirse en
botón , en lugar de los de marca roja botón que has visto antes.
Y aquí , se puede ver la misma aplicación .
Yo sólo he presentado los botones de manera diferente
Yo les presenté verticalmente en lugar de horizontalmente
Pero , ahora se puede ver que tengo esta Ingresa botón en lugar de los números rojos
Google Plus botón Iniciar sesión .
Y cuando me toque que Yo Entrar como antes.
Como se puede ver que estoy firmé en mi aplicación y todavía tienen que firmar y
revocar botón de acceso similar a lo que teníamos anteriormente.
Así que eso es justo lo que el nuevo personalizar Iniciar sesión botón Aspecto del producto y
eso es más acorde con the web sign in etc.
Etc Y se adhiere
a la señal en las directrices que vimos en los videos anteriores.
Aqui, é possível ver meu arquivo button_custom.xml.
Você notará que o coloquei em res e drawable
e nomeei o arquivo como button_custom.xml file.
Nele, está o meu selector,
que usa o esquema de nomenclatura padrão do Android.
E, no meu seletor, tenho quatro itens.
Esses itens são signin_pressed, onde state_pressed é true,
signin_focus drawable quando state_focused é true,
signin_disabled drawable quando state_enabled é false,
e o drawable normal para todo o resto.
É uma boa prática colocar o drawable normal
no fim da lista.
Lembre-se, state_pressed é true,
que dará a você o gráfico signin_pressed,
state_focused é true, e dará a você signin_focus.
É um pouco diferente quando é disabled
e você deseja a imagem fantasma que vimos mais cedo.
E é por isso que state_enabled é false,
não há state_enabled true.
Preste atenção nesse aqui.
E, claro, como eu disse, o normal vem por último.
Agora, vamos ver como isso muda a definição de botão
em minha atividade principal.
Aqui está o layout principal da atividade, e é possível ver o botão aqui.
Primeiramente, note que eu acabei de alterar o meu botão
de botão Entrar para apenas um botão padrão.
O botão padrão, '\r\n'
na configuração de background,
eu defini como drawable/button_custom,
que diz ao sistema para usar o button_custom.xml.
Se você deu outro nome ao seu arquivo xml,
certifique-se de que você use o drawable aqui.
Também fiz algumas outras alterações.
O padrão dos botões do Android está sempre definido
para que o texto fique todo em letras maiúsculas.
Mas queríamos um botão com letras maiúsculas e minúsculas.
Então, alterei para que textAllcaps seja false
e o texto Entrar do Android funcione corretamente.
Consegui letras maiúsculas e minúsculas.
Você também poderia carregar esse texto em um recurso de string,
mas codifiquei o texto aqui, para ser mais rápido.
Você também pode carregar essa string em um recurso de string,
mas deixei aqui, para ser mais rápido.
Finalmente, como eu mudei nosso botão Entrar para um botão
que pudesse ser personalizado,
temos que refatorar um pouco o nosso código.
Vamos dar uma olhada nas alterações na atividade principal.
É bem simples.
Antes, tínhamos um botão Entrar chamado mSignInButton.
Alterei isso para que fosse um botão.
Quando eu criar o manipulador de cliques,
preciso apenas projetar findViewById do botão Entrar
para button, em vez de SignInButton,
e não há mais nenhuma alteração.
Vamos dar uma olhada em como o aplicativo ficou agora
com um belo botão Entrar do Google,
em vez do botão vermelho com a marca que vimos antes.
E aqui podemos ver o mesmo aplicativo.
Eu organizei os botões de outra maneira,
na vertical em vez de na horizontal.
Mas agora podemos ver este botão Entrar
em vez do botão Entrar vermelho do Google Plus.
E, quando toco nele, entro no aplicativo como antes.
Como podemos ver, estou conectado em meu aplicativo e ainda tenho
os botões Sair e Revogar acesso, similares aos botões anteriores.
Este é o novo botão Entrar personalizado,
mais parecido com o botão Entrar da Web,
além de ser compatível com as diretrizes de login
que vimos nos vídeos anteriores.
Ну что же, здесь вы можете наблюдать мой файл button_custom.xml
Сейчас вы заметите, что я помещаю его в систему задвижки и
я только назвал его файлом button_custom.xml.
В нем у меня свой селектор
и он использует схему Standroid Android.
Таким образом, вот является мое действие основным расположением, и Вы видите кнопку здесь.
В первую очередь, заметьте,что я просто изменяю мою кнопку чтобы войти
您在这里看到的是 我的 button_custom.xml 文件。
您可以看到我将 它放在 res drawable 之下，
文件名为 button_custom.xml。
其中有我的选择器，
我的选择器使 用 Standroid Android 命名方案。
我的选择器中 包括了四个项目。
这四项分别是 当 state_pressed 为 true 时，则是 signin_pressed；
当 stay_focused 为 true 时，则是 signin_focus； 当 enabled 为 false 时，则是 signin_disabled；
对于其他所有情况， 则是 normal。
将 normal drawable 放在列表底部 是比较合适的做法。
请注意，state_pressed 为 true 时， 将获得您的 signin_pressed 图形，
state_focused 为 true 时， 将给出您的 signin_focus。
稍有不同之处是， 当被禁用
以及您想要之前我们 看到的重影图片时，
只有 state_enabled 等于 false，
没有 state_disabled 等于 true。
敬请注意这一点。
当然，就像我说的， normal 是最后一个。
现在我们来看一下 它是如何在主活动中
更改按钮定义的。
这是我的活动主布局， 这里是按钮。
首先请注意， 我刚刚把我的按钮从登录按钮
改成了标准按钮。
对于标准按钮而言， 如果您看到背景设置，
我已将其设置为 drawable/button_custom，
告诉系统要 使用 button_custom.xml。
如果您将自己的 xml 文件 命名为其他名称，
请确保您在这里使用 的 drawable 正确无误。
我还做了 其他更改。
Android 中的按钮通常是默认的， 因此其文本全部使用大写字母。
但我们只希望 sign in（登录） 中的 S 和 I 使用大写。
因此我对其进行了更改， 以便 text all caps 为 false，
然后 Android 文本 sign in 便可正常显示。
S 和 I 都是大写的。
您也可以将文本加载 到字符串资源中，
但是为求简便， 现在我只是进行了硬编码。
您也可以将字符串 加载到字符串资源中，
为求简便，现在我就将它放在这里了。
最后， 由于我们将登录按钮 改成了普通按钮，
因此我们可以对其进行自定义， 我们必须稍微重构下我们的代码。
我们一起看一下 主活动中的更改。
其实非常简单。
之前，我创建了名为 M sign in 的登录按钮。
我仅仅将其改为一个按钮。
然后，当我创建 单击处理程序时，
我只是将 find view by ID 登录按钮改为按钮， 而不是登录按钮，
其他的便都不需要更改了。
现在，我们来看看， 使用 Google sign-in 按钮
代替之前红色商标按钮 的应用的外观如何。
现在，您可以看到一个相同的应用。
只是在按钮的布局 上有所不同，
从之前的横向排列 改成了纵向排列。
但是，现在您可以看到 登录按钮代替了
红色的 Google Plus 登录按钮。
当我触摸这个按钮时， 我同之前一样就能登录了。
如您所见，我登录了 我的应用，
并且注销按钮和撤销访问权 按钮与之前看到的一样。
这便是新的自定义 登录按钮，
与网页登录等等 更为一致。
并且此按钮遵守
我们在前面的视频中 所看到的相关指南。