在ScrollView - Android周围放置黑线边框

时间:2013-02-19 16:10:27

标签: java android border scrollview

我的问题是,是否有办法在ScrollView周围放置一个简单的黑线边框,以便用户准确了解ScrollView的起点,停止位置以及宽度。我在Android文档中找不到任何类型的XML或Java代码,说明如何执行此操作。我知道这一定是可能的。

以下是ScrollView我需要有边框的XML代码。

<LinearLayout
          .... />


    <TextView
        ... />

//BORDER STARTS HERE        
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="94.5"
        android:paddingBottom="5dp"
        android:fillViewport="true" >

        <LinearLayout
            ... > 

            <TextView
                ... />

        </LinearLayout>
    </ScrollView>
//BORDER ENDS HERE

    <Button
        ... />
</LinearLayout>

修改

我刚刚添加了一个scrollviewborder.xml,其中包含以下代码作为ScrollView的背景。

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

以下屏幕截图是它产生的内容:

enter image description here

这不是我想要的。我想要一条薄薄的黑线,而不是一个黑盒子。

4 个答案:

答案 0 :(得分:10)

根据您的新要求,请尝试以下代码:

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
    <solid
        android:color="@android:color/transparent"/>
    <stroke
        android:width="2dp"
        android:color="#000000"/>
</shape>

答案 1 :(得分:8)

您可以将其背景设置为带有笔划的shape drawable

示例:

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="0dip"
    android:layout_weight="94.5"
    android:paddingBottom="5dp"
    android:background="@drawable/stroke_bg"
    android:fillViewport="true" >

在drawables文件夹中,有一个stroke_bg.xml文件:

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

这应该会产生一个带有黑色边框宽度为2dp的滚动视图。

答案 2 :(得分:2)

不要像某些人建议的那样将其包裹在布局中。这将使您的应用程序渲染速度稍慢(可能不会明显,但仍然)。 而是创建一个仅定义子项的形状,并将其用作ScrollView的背景。

答案 3 :(得分:1)

Is there an easy way to add a border to the top and bottom of an Android View?

我能想到Android中没有内置的“边框”概念。您可以通过布局模拟一个,例如:

将TextView包装在LinearLayout中并在其上方和下方添加一个普通视图,其中Views具有所需的android:background颜色和适当的android:layout_height(例如,1px,1dip)。

将TextView包装在LinearLayout中,并在上方和下方添加所需边框图像的ImageView小部件。

将TextView包装在RelativeLayout中,添加一个固定在顶部的普通视图(具有适当的背景和高度),另一个固定在底部的普通视图,以及固定在顶部和底部的TextView。这利用了RelativeLayout的z轴支持,因此边框将位于TextView占用的空间内,而不是像前两种方法一样位于TextView之外。

将TextView九个PNG文件作为具有边框的背景。从XML的角度来看,这是最简单的,但你必须制作一个合适的九补丁图像。