2010-08-21 7 views
0

Я хочу добавить новое представление в свою сцену, которая будет содержать контент, который будет изменяться программно в течение всего моего приложения. Когда он меняется, он должен появиться на экране в течение 3 секунд (или щелчок), а затем исчезнет.pop-up type view (z-index?) - android

Этот вид изменится по размеру в соответствии с его содержимым WRAP_CONTENT, но в идеале я хотел бы, чтобы он был расположен по горизонтали и вертикали на экране.

Я застрял на трех частях: 1) какой вид зрения я должен использовать для этого ... Я думал Относительно, но вся моя игра с ним не дала хороших результатов для того, что я пытаюсь сделать 2) по отношению к # 1 (попытка относительного просмотра), я не мог правильно его центрировать (пробовал использовать param.leftMargin и param.topMargin с различными значениями, но не мог заставить его работать на разных устройствах с разными разрешениями 3) также по отношению к # 1, я не мог сделать это всплывающим над всем остальным на моем экране (нужно что-то вроде z-индекса или тому подобного).

любые идеи, примеры кода были бы замечательными.

ТИА

ответ

0

Используйте диалоговое обычаем, т.е. LinearLayout с android:theme="@android:style/Theme.Dialog" и для класса, это было бы что-то вроде

public class YourCustomDialog extends Dialog implements DialogInterface 

, где вы можете реализовать вам пользовательскую логику того, что отображать. Такой диалог плавающий и модальный поверх всех других представлений, и вы также можете установить размытость фона и т. Д.

Это типичный конструктор моего настраиваемого диалога - макет будет определен в файле макета xml , который в моем случае является my_custom_dialog.xml:

public MyCustomDialog(Context context) { 
    super(context, android.R.style.Theme); 

    Window window = getWindow(); 
    window.requestFeature(Window.FEATURE_NO_TITLE); 
    window.setGravity(Gravity.BOTTOM); 
    window.setBackgroundDrawable(context.getResources().getDrawable(R.drawable.empty)); 

    setContentView(R.layout.my_custom_dialog); 

    // actually not necessary as it's already the default value: 
    window.setLayout(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

    ... 
} 
+0

спасибо за быстрый ответ. Это будет мой первый шаг при создании настраиваемого диалога. Я буду искать некоторые ресурсы о том, как это сделать. Чтобы начать работу, можете ли вы сказать мне, нужно ли включать любые новые файлы в папку res или подпапки или просто создавать этот класс в src? – Kyle

+0

вы определяете макет для самого диалога в отдельном файле макета xml. то вы используете setContentView для назначения его в диалоговом окне, см. добавленный пример кода выше. –

+0

ОК, это отличный старт. я включаю андроид: theme = "@ android: style/Theme.Dialog" в этом файле пользовательского макета или это происходит в файле main.xml (в новом линейном макете)? – Kyle