0

我正在尝试在每个 android 设备中绘制一个直径相同的 2.5 英寸(或任何其他值)的圆,无论屏幕尺寸如何。所有设备的直径尺寸必须相同,以下是我尝试过的。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:background="@drawable/light"
    tools:context=".MainActivity">

    <ImageView
        android:layout_width="3in"
        android:layout_height="3in"
        android:src="@drawable/oval_shape"
        android:id="@+id/imageView"
        android:scaleType="matrix"/>

</RelativeLayout>

椭圆形.xml

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

    <solid
        android:color="#666666"/>

    <size
        android:width="2.5in"
        android:height="2.5in"/>
</shape>

这段代码的问题是,当我用 4.5 英寸屏幕(真机)尝试时,直径为 2.5 英寸,但在 4 英寸屏幕上测试时,直径小于 2.5 英寸,略有不同。我也尝试使用毫米 (mm),但效果也不好。

那么如何才能在每部手机中实现相同大小的圆圈的要求呢?

4

1 回答 1

-1

//您在所有屏幕的椭圆形形状.xml 中使用固定静态大小。这就是为什么它因不同的屏幕而异。你可以在维度中使用它。// 在oval_shape.xml 中使用这段代码

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

    <solid
        android:color="#666666"/>

    <size
        android:width="@dimen/inch_size"
        android:height="@dimen/inch_size"/>
</shape>

// 你可以把dimens.xml放进去

1) values-xlarge

2) values-small

3) values-normal

4) values-large

And give different sizes in dimens.xml within corresponding folders according to densities.

// 像正常的 2.5 英寸,大的正常值的 1.5 倍(意味着 3.75 英寸),大的正常值的 2 倍(意味着 5 英寸),小的正常值的 0.75 倍(意味着大约 1.875 英寸)

//希望对你有帮助。

于 2016-04-26T06:11:45.687 回答