我的问题是,是否有办法在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>
以下屏幕截图是它产生的内容:
这不是我想要的。我想要一条薄薄的黑线,而不是一个黑盒子。
答案 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的角度来看,这是最简单的,但你必须制作一个合适的九补丁图像。