我有一个标准的android RatingBar,可以在多个Android版本的多个Android屏幕尺寸上正常工作。但是,我有一个拥有三星S7(7.0)的用户。设备设置中有一个选项可以降低牛轧糖后设置/显示下的屏幕分辨率。当屏幕分辨率从标准2560 x 1440降低到1920 x 1080或1280 x 720时,RatingBar中的星星不会调整大小并变得非常大。如何让星星适当调整大小?屏幕截图如下所示,分辨率为1920 x 1080。
<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>
答案 0 :(得分:0)
您所描述的行为似乎是新accessibility features的一部分。所以你所能做的就是遵循他们给予的建议:明确地测试小屏幕等。
您可以考虑为不同的屏幕尺寸提供不同的资源(布局文件,绘图,...),并且让星星变小可能是一个好主意,因为我认为最重要的应该是用户能够阅读文本。或者你可以拿出一种不同类型的评级指示器,它可以占用更少的空间,比如一颗大星星,可能是部分颜色,旁边还有(3/5)。