Join the social network of Tech Nerds, increase skill rank, get work, manage projects...
 
  • Autosizing TextViews | Android Tutorial

    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 1
    • 0
    • 523
    Comment on it

    Android 8.0 (API level 26) included a feature which allows you to instruct a TextView to let the text size dynamically expand or contract automatically to fill its layout based on the TextViews characteristics and boundaries. This setting makes it easier to optimize the text size on different screens with dynamic content sizes.

     

     

    You can implement this feature by using the textview properties given in Android 8.0 (API level 26).

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:paddingTop="60dp">
    
    
       <!-- Note: If you set autosizing in an XML file, it is not recommended to use the value "wrap_content" for the layout_width attributes of a TextView.It may produce unexpected results. -->
        <TextView
            android:textSize="30sp"
            android:id="@+id/tv_auto_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:autoSizeMaxTextSize="100sp"
            android:autoSizeMinTextSize="6sp"
            android:autoSizeStepGranularity="2sp"
            android:autoSizeTextType="uniform"
            android:ellipsize="end"
            android:maxLines="1" />
    
        <EditText
            android:id="@+id/et_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:maxLines="2" />
    
    </LinearLayout>

     

    Note: If you set autosizing in an XML file, it is not recommended to use the value "wrap_content" for the layout_width or layout_height attributes of a TextView.

    It may produce unexpected results.

     

    MainActivity.class

    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
        }
    
        private void initView() {
            EditText editText = findViewById(R.id.et_text);
            final TextView textView = findViewById(R.id.tv_auto_text);
            editText.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    
                }
    
                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
    
                }
    
                @Override
                public void afterTextChanged(Editable text) {
                    textView.setText(text.toString());
                }
            });
        }
    }

     

    Autosizing TextViews | Android Tutorial

 0 Comment(s)

Sign In
                           OR                           
                           OR                           
Register

Sign up using

                           OR                           
Forgot Password
Fill out the form below and instructions to reset your password will be emailed to you:
Reset Password
Fill out the form below and reset your password: