2016-01-19 2 views
1

Это мой XML-файл. Весь текст в кнопке большой. Я использовал android:textAllCaps="false", но результата нет. В чем может быть проблема?Почему текст в кнопке Регистрироваться и регистрироваться так велико?

Все литералы объявлены в strings.xml. Нигде не говорят даже о больших письмах. Я думаю, проблема в инвестировании LinearLayout.

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/black_color" 
     android:gravity="center_vertical" 
     android:orientation="vertical" 
     android:weightSum="1"> 

     <ImageView 
      android:id="@+id/imageView" 
      android:layout_width="200dp" 
      android:layout_height="200dp" 
      android:layout_gravity="center_horizontal" 
      android:layout_weight="0.3" 
      android:src="@drawable/ico_start" /> 

     <EditText 
      android:id="@+id/feeld_login" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginLeft="20dp" 
      android:layout_marginRight="20dp" 
      android:hint="@string/login" 
      android:phoneNumber="false" /> 

     <EditText 
      android:id="@+id/feeld_password" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginLeft="20dp" 
      android:layout_marginRight="20dp" 
      android:hint="@string/password" 
      android:inputType="textPassword" /> 


     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.6" 
      android:gravity="bottom" 
      android:padding="10dp"> 

      <Button 
       android:id="@+id/button_register" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.5" 
       android:text="@string/register" 
       android:textSize="17dp" /> 

      <Button 
       android:id="@+id/button_login" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.5" 
       android:nestedScrollingEnabled="true" 
       android:text="@string/login" 
       android:textSize="17dp" /> 
     </LinearLayout> 
    </LinearLayout> 
</ScrollView> 


<resources> 
<string name="app_name">Lesson 6. Registration Form</string> 
<string name="register">Register</string> 
<string name="login">Login</string> 
<string name="password">Password</string> 

package com.egoriku.lesson6registrationform; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ImageView; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 
    private final String login = "egorikftp"; 
    private final String password = "androidN"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     final ImageView mainImage = (ImageView) findViewById(R.id.imageView); 
     final EditText loginText = (EditText) findViewById(R.id.feeld_login); 
     final EditText passwordText = (EditText) findViewById(R.id.feeld_password); 
     Button buttonRegister = (Button) findViewById(R.id.button_register); 
     Button buttonLogin = (Button) findViewById(R.id.button_login); 

     buttonLogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if (loginText.getText().length() == 0) { 
        loginText.setError("Введите логин"); 
        mainImage.setImageResource(R.drawable.ico_error); 
       } 

       if (passwordText.getText().length() == 0) { 
        passwordText.setError("Введите пароль"); 
        mainImage.setImageResource(R.drawable.ico_error); 
       } else if (loginText.getText().toString().equals(login) && passwordText.getText().toString().equals(password)) { 
        Toast.makeText(getApplicationContext(), "Вы успешно вошли в систему!", Toast.LENGTH_LONG).show(); 
        loginText.setText(null); 
        passwordText.setText(null); 
        mainImage.setImageResource(R.drawable.ico_ok); 
       } else { 
        Toast.makeText(getApplicationContext(), "Логин/Пароль введен неверно!", Toast.LENGTH_SHORT).show(); 
        mainImage.setImageResource(R.drawable.ico_error); 
        loginText.setText(null); 
        passwordText.setText(null); 
       } 
      } 
     }); 

     buttonRegister.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (loginText.getText().length() == 0) { 
        loginText.setError("Введите логин"); 
        mainImage.setImageResource(R.drawable.ico_error); 
       } 

       if (passwordText.getText().length() == 0) { 
        passwordText.setError("Введите пароль"); 
        mainImage.setImageResource(R.drawable.ico_error); 
       } else { 
        //login = loginText.getText().toString(); 
        //password = passwordText.getText().toString(); 
        Toast.makeText(getApplicationContext(), "Вы успешно зарегистрированы! ", Toast.LENGTH_LONG).show(); 
        loginText.setText(null); 
        passwordText.setText(null); 
        mainImage.setImageResource(R.drawable.ico_ok); 
       } 
      } 

     }); 


    } 
} 

экрана моей программы. Благодарю. enter image description here

+0

а где второй макет и класса Java? :-) – piotrek1543

+0

Опубликуйте свой файл strings.xml и свой класс java, в котором вы используете эти кнопки –

+0

Загрузите мой код. –

ответ

1

Самый простой способ просто добавить эту строку внутри Button тега в XML

android:textAppearance="?android:attr/textAppearanceLarge" 

Добавление этой линии будет отображаться текст вашей кнопки, как вы хотите ли капитал или маленький в зависимости от текста

android:text=" .... " 

и изменить размер текста, который прекрасно подходит

0

Button «s виджет в Android использует этот style по умолчанию:

<item name="textAppearanceButton">@android:style/TextAppearance.Widget.Button</item> 

которые позволяют по умолчанию в textAllCaps истина. Как вы можете видеть в values/styles_base_text.xml из AppCompat темы, это может относиться к одному стилю:

<style name="Base.TextAppearance.AppCompat.Button"> 
    <item name="android:textSize">@dimen/abc_text_size_button_material</item> 
    <item name="textAllCaps">true</item> 
    <item name="android:textColor">?android:textColorPrimary</item> 
</style> 

Таким образом, вам необходимо изменить текущую тему по своему усмотрению. Этот вопрос уже разрешен с помощью this solution, предоставленного компанией @Galya. Шаги:

  • Создать новый стиль для android:textAppearanceButton
  • Используйте родительский стиль от базовой темы: @style/Base.TextAppearance.AppCompat.Button
  • Затем установите крышки на ложные textAllCaps.

Однако, это изменит все кнопки с кнопками текста в проекте. Если вам нужно только обработать эти две кнопки, я предлагаю вам создать два TextView s и предоставить на них onClickListener.

Смежные вопросы