Иконки в пользовательских диалогах Android - PullRequest
4 голосов
/ 08 декабря 2010

Есть ли способ установить значок в пользовательском диалоге без использования методов AlertDialog? В диалоге есть заголовок, но в нем отсутствует этот приятный разделитель и возможность установить значок, но наверняка должен быть способ получить оба без использования AlertDialog?

Ответы [ 2 ]

19 голосов
/ 08 декабря 2010

Вы можете добавить значок со следующим кодом:

Dialog dialog = new Dialog(context);

dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Dialog Title");

dialog.show();
dialog.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.your_icon);

Для разделителя вы можете просто добавить ImageView к вашему диалоговому макету:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:src="@android:drawable/divider_horizontal_dim_dark"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:text="content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
2 голосов
/ 03 июня 2011

Хороший способ добавить разделитель - использовать градиентную форму.

Просто создайте файл gradient.xml или около того в вашем res/drawable/ каталоге и вставьте в него что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">

<gradient android:startColor="#424542" 
          android:centerColor="#FFFFFF"
          android:endColor="#424542" 
          android:angle="0" />
</shape>

А затем внутри вашей LinearLayout вы можете поместить View:

<View android:id="@+id/divider" 
      android:layout_width="fill_parent"
      android:layout_height="1dip"
      android:background="@drawable/gradient">
</View>

Затем рисует красивый градиент делителя:)

...