2016-12-23 11 views
-1

В моем приложении я создаю представление даты, используя приведенный ниже код. Я должен создать эти элементы пользовательского интерфейса даты несколько раз, чтобы сделать календар, как табличный интерфейс. Я использую GridLayoutManager и RecycleView для создания всего представления, которое будет выглядеть как месяц. Когда пользовательский интерфейс загружен, все текстовые изображения в пользовательском интерфейсе по-прежнему показывают большой большой шрифт. Как я могу уменьшить текст пропорционально? Нужно ли мне настраивать шрифт программно или есть способ, которым я могу настроить контент, чтобы соответствовать/масштабировать доступ к имеющемуся пользовательскому интерфейсу?Отрегулируйте texview в соответствии с размером экрана, чтобы соответствовать содержимому в надлежащем масштабе

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.myApps.app1.calendarDayViewFragment"> 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/cardview_light_background" 
     tools:context="com.myApps.app1.monthDetailedDayViewFragment" 
     android:id="@+id/layout_detailed_day_view"> 

     <LinearLayout android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentStart="true"> 

      <!-- Section Row 2 --> 
      <LinearLayout android:orientation="horizontal" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/linear_layout_section_1"> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="row_text_1_1" 
        android:textAlignment="textStart" 
        android:id="@+id/textView_day_information_row_1_1" 
        android:textStyle="normal|bold" 
        android:textSize="16sp" 
        android:textColor="@color/colorPrimary" /> 

       <TextView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="row_text_1_2" 
        android:id="@+id/textView_day_information_row_1_2" 
        android:textStyle="normal|bold" 
        android:textSize="16sp" 
        android:gravity="right" 
        android:textColor="@color/colorPrimary" /> 
      </LinearLayout> 

      <!-- Section Row 2 --> 
      <LinearLayout android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/linear_layout_section_2" > 

      <LinearLayout android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:id="@+id/linear_layout_section_2_1" 
       android:layout_weight="1" > 

       <!-- Next to Big TEXT, row 1 --> 
       <TextView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Section_2_text_row_1" 
        android:textAlignment="textStart" 
        android:id="@+id/textView_day_information1" 
        android:textStyle="normal|bold" 
        android:textSize="16sp" 
        android:textColor="@color/colorPrimary" /> 

       <!-- Next to Big TEXT, row 2 --> 
       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Section_2_text_row_2" 
        android:textAlignment="textStart" 
        android:id="@+id/textView_day_information2" 
        android:textStyle="normal|bold" 
        android:textSize="16sp" 
        android:textColor="@color/colorPrimary" /> 

       <!-- Next to Big TEXT, row 3 --> 
       <TextView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Section_2_text_row_3" 
        android:textAlignment="textStart" 
        android:id="@+id/textView_day_information3" 
        android:textStyle="normal|bold" 
        android:textSize="16sp" 
        android:textColor="@color/colorPrimary" /> 

       <!-- Next to Big TEXT, row 4 --> 
       <TextView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Section_2_text_row_4" 
        android:textAlignment="textStart" 
        android:id="@+id/textView_day_information4" 
        android:textStyle="normal|bold" 
        android:textSize="16sp" 
        android:textColor="@color/colorPrimary" /> 

       <!-- Next to Big TEXT, row 5 --> 
       <TextView 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:text="Section_2_text_row_5" 
        android:textAlignment="textStart" 
        android:id="@+id/textView_day_information5" 
        android:textStyle="normal|bold" 
        android:textSize="16sp" 
        android:textColor="@color/colorPrimary" /> 

      </LinearLayout> 

      <LinearLayout android:orientation="horizontal" 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:id="@+id/linear_layout_section_2_2" 
       android:layout_weight="1"> 

       <!-- Big Text --> 
       <TextView 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:text="१०" 
        android:id="@+id/calendar_day_header" 
        android:textStyle="normal|bold" 
        android:textSize="140dp" 
        android:textColor="@color/colorPrimary" 
        android:gravity="right" /> 

      </LinearLayout> 

     </LinearLayout> 

      <!-- Section Row 3 --> 
      <LinearLayout android:orientation="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/linear_layout_section_3"> 

      <LinearLayout android:orientation="vertical" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/linear_layout_section_3_1"> 
       <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="text_row_3_1" 
       android:id="@+id/textView_information_row_3_1" 
       android:textStyle="normal|bold" 
       android:textSize="16sp" 
       android:gravity="right" 
       android:textColor="@color/colorPrimary" /> 
       <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="text_row_3_2" 
       android:id="@+id/textView_information_row_3_2" 
       android:textStyle="normal|bold" 
       android:textSize="16sp" 
       android:gravity="right" 
       android:textColor="@color/colorPrimary" /> 
      </LinearLayout> 

     <LinearLayout android:orientation="horizontal" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/linear_layout_section_3_2"> 

      <ImageView 
       android:layout_width="32dp" 
       android:layout_height="32dp" android:src="@drawable/ic_image1" 
       android:layout_alignParentRight="true" 
       android:layout_gravity="right"/> 

     </LinearLayout> 

    </LinearLayout> 

     </LinearLayout> 

    </RelativeLayout> 
</FrameLayout> 

Вот код RecycleView:

<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" 
          android:id="@+id/recyclerview_mothly_dates" 
          android:layout_width="match_parent" 
          android:layout_height="match_parent" 
          android:scrollbars="vertical" 
          android:background="@android:color/holo_green_light" > 

         </android.support.v7.widget.RecyclerView> 

Спасибо, IamHuM

ответ

0

создать несколько папку для значений, как это и пасты dimens.xml в каждой папке и управлять Размер текста здесь же имя с разными значениями.

values 
values-xhdpi 
values-xxhdpi 
values-xxxhdpi 
values-sw600dp 
values-sw800dp 

<TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="१०" android:id="@+id/calendar_day_header" android:textStyle="normal|bold" android:textSize="@dimen/test_140_size" android:textColor="@color/colorPrimary" android:gravity="right" />

ПРИМЕЧАНИЕ: Дайте другое значение размера текста в зр в соответствии с разрешением в каждом файле dimens.xml с таким же именем.

0

Вы можете добавить эту библиотеку в свой Gradle файл
compile 'com.intuit.sdp:sdp-android:1.0.3'

Все, что вам нужно сделать, это: добавить андроид: TextSize = "@ DIMEN/_13sdp"

Вы должны использовать SDP вместо dp, это автоматически масштабирует ваш текст или любой другой вид в соответствии с размером, которое требуется на любом устройстве независимо от его размера.

надеюсь, что это решает вашу проблему.

<TextView 
    android:id="@+id/profile_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello World" 
    android:textSize="@dimen/_13sdp" />