web-dev-qa-db-ja.com

Android破線の描画可能な可能性ICSバグ

以下は、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" />
29
Chris Horner

この問題はここに記録されます http://code.google.com/p/Android/issues/detail?id=29944 ハードウェアアクセラレーションをオフにすると、破線が表示されます。

23
HannahMitt

http://code.google.com/p/Android/issues/detail?id=29944 に記録された問題には、ビューに以下を適用するというコメントがあります。

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null)

これは私のために働いた。

48
saulpower