33

下面是一条虚线,在 XML 中定义为 ShapeDrawable:

<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">

    <size
        android:height="2dp"
        android:width="700dp" />

    <stroke
        android:width="1dp"
        android:color="@android:color/black"
        android:dashWidth="1dp"
        android:dashGap="2dp" />

</shape>

这将在几部姜饼手机上画出一条漂亮的虚线。然而,在 Galaxy Nexus 上,破折号似乎被忽略了,形状被绘制成一条连续的线。更奇怪的是,运行 ICS 的模拟器会用破折号正确渲染它,这只是物理设备搞砸了。

我错过了一些明显的东西吗?或者这真的是 Android 4.0 的错误吗?这条线在几个地方使用。这是一个示例 ImageView:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="@dimen/observation_observe_side_margin"
    android:layout_marginRight="@dimen/observation_observe_side_margin"
    android:layout_marginTop="16dp"
    android:contentDescription="@string/dotted_line_description"
    android:src="@drawable/dotted_line" />
4

2 回答 2

50

记录在http://code.google.com/p/android/issues/detail?id=29944的问题有一条评论,将以下内容应用于您的视图:

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

这对我有用。

于 2012-11-28T16:50:21.887 回答
24

此问题记录在这里http://code.google.com/p/android/issues/detail?id=29944关闭硬件加速将显示虚线。

于 2012-06-11T15:27:14.057 回答