Подтвердить что ты не робот

Как я могу получить разделитель по умолчанию?

Я хочу создать форму и поместить разделитель между каждым элементом формы, и я хочу, чтобы разделитель имел тот же стиль, что и для списка ListView на платформе.

Можно ли каким-либо образом получить доступ к информации о разделителе по умолчанию для ListView и использовать его для моей формы?

4b9b3361

Ответ 2

Это получит разделитель списка по умолчанию, соответствующий вашей теме приложений:

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();

Ответ 3

Вот как я это делаю

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

Ответ 4

Чтобы получить горизонтальный разделитель по умолчанию из кода, вы можете использовать:

    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 в onDraw:

divider.setBounds(X, Y, X + width, Y + height);
divider.draw(canvas);