在我的应用程序中,我使用以下代码创建日期视图。我必须多次创建这些日期UI元素,以制作像表格UI一样的日历。我使用GridLayoutManager和RecycleView创建整个视图,看起来像一个月。 加载UI时,UI中的所有文本视图仍然显示大字体。我如何按比例缩小文本?我是否必须以编程方式调整字体,还是有一种方法可以调整内容以适应/缩放可用的UI?
<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 :(得分: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文件中的分辨率,在sp中给出不同的文本大小值。
答案 1 :(得分:0)
您可以将此库添加到您的gradle文件中 compile 'com.intuit.sdp:sdp-android:1.0.3'
您需要做的就是:添加 android:textSize =“@ dimen / _13sdp”
您必须使用 sdp 而不是 dp ,这会根据任何设备所需的尺寸自动缩放textView或任何其他视图,而不管其大小
希望这可以解决您的问题。
<TextView
android:id="@+id/profile_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World"
android:textSize="@dimen/_13sdp" />