首页 > 解决方案 > 在 ppi 较小的设备上,字体和图标看起来很暗淡且像素化

问题描述

我有个问题。在具有较小 ppi(每英寸像素数)的屏幕上,字体和图标看起来暗淡且像素化。在右侧的第二个屏幕上,还有另一个应用程序,但在同一设备上,一切正常(当然,左侧稍微增加以对齐字体大小,因此比它的像素化多一点,但仍然)。屏幕三星 Galaxy Tab SM-T531

在此处输入图像描述

我使用xamarin.android

<FrameLayout xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    card_view:cardElevation="0.5dp"
    card_view:cardMaxElevation="0.5dp"
    card_view:cardUseCompatPadding="true"
    card_view:cardCornerRadius="0dp"
    android:minWidth="25px"
    android:minHeight="25px">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"  
        android:padding="1dp">
        <ImageView
            android:layout_width="45dp"
            android:layout_height="45dp"                
            android:adjustViewBounds="true"
            android:id="@+id/imageView"                      
            />
        <ImageView
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:layout_marginTop="25dp"
            android:layout_marginLeft="-15dp"
            android:layout_toRightOf="@+id/imageView"
            android:id="@+id/sensorImageView"                        
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#333333"
            android:textSize="21dp"
            android:text="Caption"
            android:layout_marginLeft="10dp" 
            android:layout_toRightOf="@+id/imageView"                       
            android:id="@+id/nameTextView"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#333333"
            android:textSize="10dp"
            android:text="Description"              
            android:layout_marginLeft="10dp" 
            android:layout_toRightOf="@+id/imageView"
            android:layout_below="@+id/nameTextView"
            android:id="@+id/descTextView"              
            />
        <ImageView
            android:layout_width="21.5dp"
            android:layout_height="21.5dp"
            android:layout_alignParentRight="true"
            android:layout_marginTop="3dp"
            android:layout_marginRight="85dp"
            android:id="@+id/stateImageView"                         
            />
        <TextView
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#333333"
            android:textSize="20dp"
            android:layout_marginRight="30dp"
            android:layout_alignParentRight="true"
            android:text="-13.07"
            android:textAlignment="textEnd"
            android:id="@+id/mainValueTextView"                              
            />
        <TextView
            android:layout_width="27dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#333333"
            android:textSize="10dp"
            android:text="ob/m"     
            android:layout_alignParentRight="true"
            android:id="@+id/mainValueSymbolTextView"               
            />
        <TextView
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#333333"
            android:textSize="10dp"
            android:text="1`23123"
            android:textAlignment="textEnd"
            android:layout_alignParentRight="true"
            android:layout_marginTop="1dp"
            android:layout_marginRight="30dp"
            android:layout_below="@+id/mainValueTextView"
            android:id="@+id/addValueTextView"
            />
        <TextView
            android:layout_width="27dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#333333"
            android:textSize="10dp"
            android:text="квт/ч"
            android:textAlignment="textStart"
            android:layout_alignParentRight="true"
            android:layout_marginTop="1dp"
            android:layout_below="@+id/mainValueTextView"
            android:id="@+id/addValueSymbolTextView"
            />
    </RelativeLayout>   
</android.support.v7.widget.CardView>

有人可以帮我吗?谢谢。

标签: androidxamarin.android

解决方案


Scale-independent Pixels - This is like the dp unit, but it is also scaled by the user's font size preference. It is recommend you use this unit when specifying font sizes, so they will be adjusted for both the screen density and the user's preference.

use text size in sp instead dp

That means use android:textSize="21sp" instead android:textSize="21dp" etc

**scale independent Pixels= sp

**density independent Pixels= dp

Read here for more detailed info


推荐阅读