在Nougat之后,RatingBar无法正确缩放以获得较低分辨率

时间:2017-04-29 17:30:09

标签: android android-widget rating ratingbar rating-system

我有一个标准的android RatingBar,可以在多个Android版本的多个Android屏幕尺寸上正常工作。但是,我有一个拥有三星S7(7.0)的用户。设备设置中有一个选项可以降低牛轧糖后设置/显示下的屏幕分辨率。当屏幕分辨率从标准2560 x 1440降低到1920 x 1080或1280 x 720时,RatingBar中的星星不会调整大小并变得非常大。如何让星星适当调整大小?屏幕截图如下所示,分辨率为1920 x 1080。

2560x1440 resolution

1920x1080 resolution

   <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"

    <Button
        android:text="Add Data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_add"

        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:id="@+id/scrollview"
        android:layout_above="@id/button_add"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignParentStart="true"
            android:layout_alignParentBottom="true">


            <TextView
                android:text="Stress"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView2"
                android:paddingStart="@dimen/tab_label"
                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
                android:textSize="18sp"
                android:gravity="center_vertical"
                android:layout_alignParentStart="true"
                android:layout_toStartOf="@+id/rbStress"
                android:layout_alignBottom="@+id/rbStress"
                android:layout_below="@+id/textView6" />

            <TextView
                android:text="Breathing"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView4"
                android:paddingStart="@dimen/tab_label"
                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
                android:textSize="18sp"
                android:gravity="center_vertical"
                android:layout_alignParentStart="true"
                android:layout_above="@+id/rbCough"
                android:layout_toStartOf="@+id/rbBreathing"
                android:layout_below="@+id/rbAbdomen" />

            <TextView
                android:text="Chest Pain"
                android:paddingTop="5dp"
                android:layout_width="200dp"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:id="@+id/textView3"
                android:paddingStart="@dimen/tab_label"
                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
                android:textSize="18sp"
                android:gravity="center_vertical"
                android:layout_above="@+id/rbAbdomen"
                android:layout_toStartOf="@+id/rbChest" />

            <TextView
                android:text="Abdomen"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:maxLines="1"
                android:id="@+id/textView"
                android:paddingStart="@dimen/tab_label"
                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
                android:textSize="18sp"
                android:gravity="center_vertical"
                android:layout_alignParentStart="true"
                android:layout_above="@+id/rbBreathing"
                android:layout_toStartOf="@+id/rbAbdomen"
                android:layout_below="@+id/rbChest" />

            <TextView
                android:text="Stress"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView7"
                android:paddingStart="@dimen/tab_label"
                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
                android:textSize="18sp"
                android:gravity="center_vertical"
                android:layout_alignParentStart="true"
                android:layout_toStartOf="@+id/rbStress"
                android:layout_alignBottom="@+id/rbStress"
                android:layout_below="@+id/textView6" />

            <TextView
                android:text="Dizzyness"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView6"
                android:paddingStart="@dimen/tab_label"
                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
                android:textSize="18sp"
                android:gravity="center_vertical"
                android:layout_alignParentStart="true"
                android:layout_above="@+id/rbStress"
                android:layout_toStartOf="@+id/rbDizzy"
                android:layout_below="@+id/rbCough" />

            <TextView
                android:text="Cough"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/textView5"
                android:paddingStart="@dimen/tab_label"
                android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
                android:textSize="18sp"
                android:gravity="center_vertical"
                android:layout_alignParentStart="true"
                android:layout_above="@+id/rbDizzy"
                android:layout_toStartOf="@+id/rbCough"
                android:layout_below="@+id/rbBreathing" />

            <RatingBar
                android:paddingTop="5dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rbChest"
                android:gravity="center_vertical"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true"
                style="@style/Widget.AppCompat.RatingBar" />

            <RatingBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rbAbdomen"
                android:gravity="center_vertical"
                android:layout_below="@+id/rbChest"
                android:layout_alignParentEnd="true"
                style="@style/Widget.AppCompat.RatingBar" />

            <RatingBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rbBreathing"
                android:layout_below="@+id/rbAbdomen"
                android:layout_alignParentEnd="true"
                style="@style/Widget.AppCompat.RatingBar" />

            <RatingBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rbCough"
                android:layout_below="@+id/rbBreathing"
                android:layout_alignParentEnd="true"
                style="@style/Widget.AppCompat.RatingBar"/>

            <RatingBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rbStress"
                android:layout_below="@+id/rbDizzy"
                android:layout_alignParentEnd="true"
                style="@style/Widget.AppCompat.RatingBar"/>


            <RatingBar
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/rbDizzy"
                android:layout_below="@+id/rbCough"
                android:layout_alignParentEnd="true"
                style="@style/Widget.AppCompat.RatingBar" />

        </RelativeLayout>
    </ScrollView>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

您所描述的行为似乎是新accessibility features的一部分。所以你所能做的就是遵循他们给予的建议:明确地测试小屏幕等。

您可以考虑为不同的屏幕尺寸提供不同的资源(布局文件,绘图,...),并且让星星变小可能是一个好主意,因为我认为最重要的应该是用户能够阅读文本。或者你可以拿出一种不同类型的评级指示器,它可以占用更少的空间,比如一颗大星星,可能是部分颜色,旁边还有(3/5)。