7

在我的布局中,我试图绘制一条虚线。为了绘制一条水平线,我正在我的布局文件中定义一个视图。

     <View
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:background="@drawable/customdots" />

和 customdots.xml

 <?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item
    android:left="10dp"
    android:right="10dp"
    android:width="4dp"
    android:drawable="@drawable/dotted" />

 </layer-list>

dotted.xml

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

  <size
    android:height="4dp"
    android:width="1024dp"/>
  <stroke
   android:width="4dp" 
   android:dashWidth="4dp"
   android:color="@android:color/black"
   android:dashGap="5dp"/>

</shape>

但我没有得到任何使用此代码的行。请帮帮我。

当我在 listView Divider 中使用 customdots.xml 作为

 android:divider="@drawable/customdots"

它显示了一条很好的虚线

4

2 回答 2

52

在我发现最新版本的 Android 在渲染这样的线条时存在错误之前,我也一直在努力解决这个问题。

可以通过将android:layerType="software"添加到使用虚线作为背景的视图中来规避此错误。

例子:

dotted.xml:

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

<stroke
    android:dashGap="3dp"
    android:dashWidth="8dp"
    android:height="2px"
    android:color="#FFFFFF" />

</shape>

布局.xml:

    <View
        android:id="@+id/vDottedLine"
        android:background="@drawable/dotted"
        android:layout_width="match_parent"
        android:layout_height="2px"
        android:layerType="software" />
于 2013-09-02T11:48:30.140 回答
0

您可以使用以下代码。它可能会帮助你。像这样在drawable文件夹中创建一个dotted.xml ...

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line" >
       <stroke
       android:color="#A52A2A"
       android:dashWidth="10px"
       android:dashGap="10px" />

</shape>

然后在你的布局中使用这个 xml 和这样的图像视图....

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is above line of code " />
    <ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="3dp"
    android:layout_marginBottom="3dp"
    android:src="@drawable/dottede" />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="this is below code " />
</LinearLayout>
于 2013-08-26T10:01:54.963 回答