【转】Android Shape绘制虚线在手机端查看是实线的问题

时间:2024-08-25 16:04:44

Android share绘制虚线在手机上显示实线问题

给控件添加Drawableleft等图片后,单独给图片设置动画效果,参考文章:

http://blog.****.net/langzxz/article/details/47069235

效果未测试。

原文博客链接:http://wv1124.iteye.com/blog/2187204

博客分类: 

可以说这是一个Bug, 据说在4.0以上机器会出现,我测试是android 4.4.2

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:shape="line" >
  4. <stroke
  5. android:dashGap="3dp"
  6. android:dashWidth="8dp"
  7. android:width="1dp"
  8. android:color="#999999" />
  9. <size android:height="1dp" />
  10. </shape>

layout中引用:

  1. <View
  2. android:layout_width="match_parent"
  3. android:layout_height="3dp"
  4. android:layout_marginBottom="5dp"
  5. android:layout_marginTop="5dp"
  6. android:background="@drawable/left_menu_dash_line" />

在4.4.2上显示实线。

解决:

  1. <View
  2. android:layerType="software"
  3. android:layout_width="match_parent"
  4. android:layout_height="3dp"
  5. android:layout_marginBottom="5dp"
  6. android:layout_marginTop="5dp"
  7. android:background="@drawable/left_menu_dash_line" />

重点:

  1. android:layerType="software"

也可以:

  1. <activity android:name=".TestActivity" android:label="Test"
  2. android:hardwareAccelerated="false">

重点关闭硬件加速:

  1. android:hardwareAccelerated="false"
divider_under_pic.setLayerType(View.LAYER_TYPE_SOFTWARE,null);

代码中使用setLayerType设置。

参考:

http://developer.android.com/guide/topics/graphics/hardware-accel.html