Android 16到23安卓版本中的安卓圆形

Android 16到23安卓版本中的安卓圆形,android,android-layout,Android,Android Layout,我想做一个圆圈,它在所有Android版本中都是完美的 我尝试创建一个如下的可绘制图形: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" > ...color..stroke... </shape> …颜色…笔划。。。 在我的布局中,我创建了一个文本视图

我想做一个圆圈,它在所有Android版本中都是完美的

我尝试创建一个如下的可绘制图形:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
...color..stroke...
</shape>

…颜色…笔划。。。
在我的布局中,我创建了一个文本视图,如:

<TextView
    android:background="@drawable/shape_circle"
    android:layout_width="64dp"
    android:layout_height="64dp"
/>

问题是一些设备显示圆形视图,而另一些设备显示椭圆形视图

  • Moto G2-5.0.2=圆形
  • 三星S2-API 16=椭圆形
  • 三星S3-API 18=圆形
  • 三星S3-API 16=椭圆形
  • Nexus 5-API 22=圆形
  • 编辑: 布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="8dp"
        >
    
        <TextView
            android:id="@+id/text_table_empty"
            android:text="14"
            android:gravity="center"
            android:textColor="@color/medium_gray"
            android:textSize="18sp"
            android:background="@drawable/shape_table"
            android:layout_width="64dp"
            android:layout_height="64dp"
            />
    
        <TextView
            android:id="@+id/text_table_used"
            android:text="14"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="18sp"
            android:background="@drawable/shape_table_used"
            android:layout_width="64dp"
            android:layout_height="64dp"
            />
    
        <TextView
            android:layout_marginTop="2dp"
            android:layout_marginRight="2dp"
            android:textSize="12sp"
            android:textColor="@color/white"
            android:id="@+id/text_table_num_orders"
            android:layout_alignRight="@+id/text_table_used"
            android:layout_alignTop="@+id/text_table_used"
            android:gravity="center"
            android:background="@color/light_green"
            android:text="1"
            android:layout_width="20dp"
            android:layout_height="20dp"/>
    
    </RelativeLayout>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
        <solid android:color="@color/light_gray"/>
        <stroke android:width="1dp"
                android:color="@color/medium_gray"
            />
        <size
            android:width="64dp"
            android:height="64dp"/>
    </shape>
    
    
    
    可拉伸形状\u表:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="8dp"
        >
    
        <TextView
            android:id="@+id/text_table_empty"
            android:text="14"
            android:gravity="center"
            android:textColor="@color/medium_gray"
            android:textSize="18sp"
            android:background="@drawable/shape_table"
            android:layout_width="64dp"
            android:layout_height="64dp"
            />
    
        <TextView
            android:id="@+id/text_table_used"
            android:text="14"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="18sp"
            android:background="@drawable/shape_table_used"
            android:layout_width="64dp"
            android:layout_height="64dp"
            />
    
        <TextView
            android:layout_marginTop="2dp"
            android:layout_marginRight="2dp"
            android:textSize="12sp"
            android:textColor="@color/white"
            android:id="@+id/text_table_num_orders"
            android:layout_alignRight="@+id/text_table_used"
            android:layout_alignTop="@+id/text_table_used"
            android:gravity="center"
            android:background="@color/light_green"
            android:text="1"
            android:layout_width="20dp"
            android:layout_height="20dp"/>
    
    </RelativeLayout>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
        <solid android:color="@color/light_gray"/>
        <stroke android:width="1dp"
                android:color="@color/medium_gray"
            />
        <size
            android:width="64dp"
            android:height="64dp"/>
    </shape>
    
    
    

    OBS:使用的可绘制形状表与形状表相同,没有笔划和其他颜色。

    事实上,您几乎完全正确。圆形是一个具有相同宽度和高度的椭圆形,因此您可以在形状内设置宽度和高度,这样您就可以在每个设备中获得圆形

    <?xml version="1.0" encoding="utf-8"?>
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
    
        <solid
            android:color="@color/white"/>
    
        <size
            android:width="100dp"
            android:height="100dp"/>
    </shape>
    
    
    

    如果你想要一个圆,你可以使用这个,但是你的视角高度和宽度必须相等

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
        <gradient
            android:angle="270"
            android:endColor="#80FF00FF"
            android:startColor="#FFFF0000" />
    
    </shape>
    
    
    
    你也用这个

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
        <gradient
            android:angle="270"
            android:endColor="#80FF00FF"
            android:startColor="#FFFF0000" />
        <size
            android:width="80dp"
            android:height="80dp"/>
    </shape>
    
    
    
    请使用此 也可以删除尺寸标记,但在这种情况下,视图的高度和宽度必须相等

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
        <stroke
            android:width="1dp"
            android:color="#E0D8D0" />
    
        <size
            android:width="80dp"
            android:height="80dp"/>
    </shape>
    
    
    
    请参见下面的另一个答案。请在使用文本视图的位置添加整个布局文件。我在上一个版本中添加了。从绘图中删除尺寸标记。我建议您在自定义视图中绘制一个圆圈。它将在每个设备上呈圆形。