如何获取默认分隔符?

时间:2011-01-01 04:58:45

标签: android

我想创建一个表单并在每个表单元素之间放置一个分隔符,我希望分隔符具有与平台上ListView的默认样式相同的样式。

我可以以某种方式访问​​有关ListView的默认分隔符的信息并将其用于我的表单吗?

4 个答案:

答案 0 :(得分:68)

这是在some Android sources

中完成的
<View
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="?android:attr/listDivider" />

答案 1 :(得分:12)

这将获得与您的应用程序主题匹配的默认列表分隔符:

int[] attrs = { android.R.attr.listDivider };
TypedArray ta = getApplicationContext().obtainStyledAttributes(attrs);
//Get Drawable and use as needed
Drawable divider = ta.getDrawable(0);
//Clean Up
ta.recycle();

答案 2 :(得分:6)

我就是这样做的

<ImageView 
  android:layout_width="fill_parent"
  android:layout_height="1dp"
  android:scaleType="fitXY"
  android:src="?android:attr/listDivider" />

答案 3 :(得分:2)

要从您可以使用的代码获取默认水平分隔符:

    final TypedArray array = getContext().getTheme().obtainStyledAttributes(
            R.style.<some_theme>, new int[] {
                android.R.attr.dividerHorizontal
            });
    final int defaultDivider = array.getResourceId(0, 0);
    final Bitmap dividerBitmap = BitmapFactory.decodeResource(r, defaultDivider);
    final BitmapDrawable divider = new BitmapDrawable(r, dividerBitmap);

然后,也可以在Canvas的{​​{1}}中自行绘制:

onDraw