如何使对话逐渐变大,而不是立即变大

时间:2013-04-25 07:53:11

标签: android animation android-animation

我有一个包含checkBox的自定义对话框。当我检查CheckBox时,会创建新视图并将其添加到Dialog中。如果我取消选中CheckBox,它将使视图添加完毕并将其更改回上一个视图。

这是它的样子。左侧的图片在检查之前,左侧在检查之后。 enter image description here

选中对话框后,对话框布局将变得更大,如上图所示。

我的问题是如何使对话框布局逐渐变大,而不是立即变大。 像动画这样的东西使布局逐渐扩展。

到目前为止,这是我的工作。

public class CreateRoomDialogFragment extends DialogFragment {


    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the Builder class for convenient dialog construction
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        //Get layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();

        //R.layout.add_player2 is the layout shows on dialog message
        view = inflater.inflate(R.layout.createroom_dialog_fragment, null);

        roomName = (EditText)view.findViewById(R.id.createroom_dialog_roomname);
        roomKey = (EditText)view.findViewById(R.id.createroom_dialog_key);
        keyLayout = (LinearLayout)view.findViewById(R.id.keyLayout);        
        checkBoxLayout1 = (RelativeLayout)view.findViewById(R.id.createroom_dialog_layout1);
        checkBoxLayout2 = (RelativeLayout)view.findViewById(R.id.createroom_dialog_layout2);

        // lock the room with key
        checkBox1 = (CheckBox)view.findViewById(R.id.createroom_dialog_checkbox1);

        // show the key
        checkBox2 = (CheckBox)view.findViewById(R.id.createroom_dialog_checkbox2);


        checkBox1.setOnCheckedChangeListener(new CreateRoomCheckBoxListener());
        checkBox2.setOnCheckedChangeListener(new CreateRoomCheckBoxListener());
    }   

    private class CreateRoomCheckBoxListener implements OnCheckedChangeListener{

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            if(buttonView == checkBox1){
                // lock the room with key
                if(isChecked){

                    roomKey.setVisibility(View.VISIBLE);
                    checkBoxLayout2.setVisibility(View.VISIBLE);                    

                }else{

                    roomKey.setVisibility(View.GONE);
                    checkBoxLayout2.setVisibility(View.GONE);
                }

            }   
        }

    }


}

1 个答案:

答案 0 :(得分:1)

可以为对话框设置动画 请参阅此tutorial 对不起,这是日语。因为我可以阅读日语,我认为你可以阅读日语。