Android-如何创建自定义对话框/警报

时间:2012-05-04 06:43:37

标签: android

我有一个游戏级别的屏幕..当触摸一个级别来玩时,我需要为它提供指令警报/弹出窗口(scrolable)。

它应该是定制的..在愤怒的小鸟弹出...

拥有自己的背景图片 没有边界 只有确定按钮

请帮助我即将发布到GOOGLEPLAY ...

3 个答案:

答案 0 :(得分:1)

@Override
protected Dialog onCreateDialog(int id) {
    // TODO Auto-generated method stub
    switch (id) {

    case 0:

        final Dialog mDialog = new Dialog(this);
        mDialog.setContentView(R.layout.customdialog);
        mDialog.setTitle("Custom Dialog");
        mDialog.show();
        mDialog.setCancelable(false);
        final EditText txtUser = (EditText)mDialog.findViewById(R.id.txtUserName);


        Button btnButtonOK = (Button)mDialog.findViewById(R.id.btnOK);
        Button btnButtonCancel = (Button)mDialog.findViewById(R.id.btnCancel);

        btnButtonOK.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                String user = txtUser.getText().toString();
                if (!user.equals(""))
                    {
                    Toast.makeText(getApplicationContext(),
                        user, Toast.LENGTH_LONG).show();
                mDialog.dismiss();
                    }
            }
        });



        btnButtonCancel.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                mDialog.dismiss();
            }
        });


        break;
}

答案 1 :(得分:1)

您可以使用以下方法制作自己的设计: progress layer-xml

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

   <TextView
       android:id="@+id/textView1"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
            android:text="@string/layer_folien"
         android:textAppearance="?android:attr/textAppearanceLarge" />

        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/layer_gesamnt"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <ProgressBar
            android:id="@+id/progressBar2"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" />

        <Button
            android:id="@+id/dialog_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="@string/layer_button" />

    </LinearLayout>

和de Code称之为

final Dialog dialog = new Dialog(PechaKuchaTimerActivity.this);
dialog.show();

final ProgressBar pr_fol = (ProgressBar)  dialog.findViewById(R.id.progressBar1);
final ProgressBar pr_ges = (ProgressBar)  dialog.findViewById(R.id.progressBar2);
final Button button_layerCancel = (Button) dialog.findViewById(R.id.dialog_cancel);

答案 2 :(得分:1)

我认为你需要的代码是

<强> mydialog.xml

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

        <Button
            android:id="@+id/ok"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Ok"
            android:layout_gravity="center"
             />

</LinearLayout>

Dialog dialog=new Dialog(mContext);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.mydialog);
dialog.getWindow().getAttributes().width = LayoutParams.FILL_PARENT;
dialog.getWindow().setBackgroundDrawableResource(R.drawable.dialogbackground);

Button mOkButton=(Button)dialog.findViewById(R.id.ok);


mOkButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

    //do here what you want to do with ok button click

    }
});

此处dialogbackground是背景图片