Android虚线可绘制潜在ICS错误
Posted
技术标签:
【中文标题】Android虚线可绘制潜在ICS错误【英文标题】:Android dashed line drawable potential ICS bug 【发布时间】:2012-06-06 06:55:58 【问题描述】:以下是虚线,在 XML 中定义为 ShapeDrawable:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<size
android:
android: />
<stroke
android:
android:color="@android:color/black"
android:dashWidth="1dp"
android:dashGap="2dp" />
</shape>
这将在几部 Gingerbread 手机上绘制一条漂亮的虚线。然而,在 Galaxy Nexus 上,破折号似乎被忽略了,形状被绘制为一条连续的线。更奇怪的是,运行 ICS 的模拟器会正确地用破折号渲染它,这只是物理设备搞砸了。
我是否遗漏了一些明显的东西?或者这真的是 Android 4.0 的错误吗?这条线在几个地方使用。这是一个 ImageView 示例:
<ImageView
android:layout_
android:layout_
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" />
【问题讨论】:
我在 Galaxy Nexus 上的应用中发现了同样的问题。在我的其他设备 2.x 设备上,它显示为虚线。 重复***.com/a/26296229/185022 Dotted line is actually not dotted when app is running on real Android device的可能重复 【参考方案1】:http://code.google.com/p/android/issues/detail?id=29944 记录的问题有一条评论,将以下内容应用于您的视图:
view.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
这对我有用。
【讨论】:
请注意,如果您不想以编程方式编辑视图,也可以将属性android:layerType="software"
添加到 XML 定义中。
API 11+ developer.android.com/reference/android/view/…
所以在问题的例子中。你会将android:layerType="software"
设置为ImageView
还是shape
?
我会在 ImageView 上做【参考方案2】:
此问题记录在这里http://code.google.com/p/android/issues/detail?id=29944关闭硬件加速将显示虚线。
【讨论】:
不幸的是,这使我的表现恶化了大约 500%。有什么办法可以防止这种情况发生吗? 不要关闭硬件加速。CardView
将失去它的影子:***.com/questions/43406938/…。以上是关于Android虚线可绘制潜在ICS错误的主要内容,如果未能解决你的问题,请参考以下文章