安卓形状线条

27

我有以下代码:

   <shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="line">
   <stroke android:width="1dp"/>
   <size android:height="1dp" />
   <solid  android:color="#FFF"/>
   </shape>


   <LinearLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:background ="@drawable/line"/>

我有两个问题:

  1. 为什么这条线是黑色而不是白色?我尝试将它放在一个ImageView中,但结果是相同的。
  2. 如何设置形状的不透明度?
3个回答

29
1) 为了设置线条的颜色,您需要在 <stroke> 上定义 android:color<solid> 元素用于背景。
2) 您可以使用 带有 alpha 层的颜色值,即 #ARGB 来设置形状的不透明度。在您的情况下,可能是 #7FFF。

@Vaiden Android支持4位ARGB。在这种情况下,它将被解释为#77FFFFFF。 - Andrew T.

22

这是两个密度为2的黑色像素构成的直线的最简单示例。 将xml文件保存在drawable文件夹中:res/drawable/shape_black_line.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<stroke 
    android:width="1dp" 
    android:color="#000000" />
<size android:height="2dp" />
</shape>

使用LinearLayout和background来显示线条。

<LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:background="@drawable/divider">
</LinearLayout>

我希望这有所帮助。


5
如果我们使用<View>而不是LinearLayout,会不会更节省内存? - Juan José Melero Gómez
1
可以使用它。因为每个类都是从视图继承而来的。 - Hemant Shori
你能解释一下你的代码和原帖作者的代码之间的区别吗?这并不是一眼就能看出来的。 - Vince

0
一个巧妙的方法可以是这样的:
1)在您想要有一条线的地方添加一个视图。
2)将android:background设置为一个十六进制值,您可以设置颜色和不透明度。
例如:
<View
    android:layout_width="match_parent"
    android:layout_height="6dp"
    android:background="#77f27123"
    android:orientation="vertical" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接