1. drawable下的circular_corner_dialog.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<gradient
android:startColor="@android:color/white"
android:endColor="@android:color/white">
</gradient>
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp">
</corners>
</shape>
</item>
</selector>
2. layout下的activity_infodialog.xml:<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:gravity="center"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/circular_corner_dialog"
android:id="@+id/linearlayout"
android:orientation="vertical"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Please input your informaion"
android:layout_marginTop="15dp"
android:layout_marginBottom="10dp"
android:layout_gravity="center_horizontal"
android:id="@+id/infoText" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Name"
android:ems="10"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:id="@+id/name" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="Height(cm)"
android:ems="10"
android:id="@+id/height"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_weight="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="Gender"
android:editable="false"
android:ems="10"
android:id="@+id/gender"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_weight="4" />
<ImageButton
android:id="@+id/male"
android:layout_width="0dp"
android:layout_height="match_parent"
android:src="@drawable/malebutton"
android:layout_weight="1"
android:layout_marginRight="10dp"
android:background="@drawable/gener_icon_box" />
<ImageButton
android:id="@+id/female"
android:layout_width="0dp"
android:layout_height="match_parent"
android:src="@drawable/femalebutton"
android:layout_weight="1"
android:layout_marginRight="10dp"
android:background="@drawable/gener_icon_box" />
</LinearLayout>
<com.wys.myUtils.MyCustomButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/ok_button"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="10dp"
android:layout_gravity="center_horizontal" />
<com.wys.myUtils.MyCustomButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/cancel_button"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="20dp"
android:layout_gravity="center_horizontal" />
</LinearLayout>
</LinearLayout>
其中MyCustomButton是上一篇博客中自定义的Button。
3. Dialog_activity:
package com.wys.myCameraAndDialog;
import android.app.DialogFragment;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import com.comdosoft.face.R;
import com.wys.myUtils.MyCustomButton;
public class InfoDialogActivity extends DialogFragment {
private EditText mUsername;
private EditText mHeight;
private EditText mGender;
private LinearLayout mLinearlayout;
private MyCustomButton ok_button;
private MyCustomButton cancel_button;
private ImageButton male;
private ImageButton female;
public interface DialogActivityListener
{
void onDialogActivityComplete(EditText username, EditText height, EditText gender);
//隐藏软键盘
void onDialogActivitySoftInput(LinearLayout linearlayout);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE);
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
//Resources res = getResources();
//Drawable background = res.getDrawable(R.drawable.input_info_panel);
//getDialog().getWindow().setBackgroundDrawable(background);
// set the animations to use on showing and hiding the dialog
//getDialog().getWindow().setWindowAnimations(R.style.MyCustomTheme);
View view = inflater.inflate(R.layout.activity_infodialog, container, false);
mUsername = (EditText) view.findViewById(R.id.name);
mHeight = (EditText) view.findViewById(R.id.height);
mGender = (EditText) view.findViewById(R.id.gender);
mLinearlayout = (LinearLayout)view.findViewById(R.id.linearlayout);
ok_button = (MyCustomButton) view.findViewById(R.id.ok_button);
cancel_button = (MyCustomButton) view.findViewById(R.id.cancel_button);
male = (ImageButton)view.findViewById(R.id.male);
female = (ImageButton)view.findViewById(R.id.female);
ok_button.setRadius(15);
ok_button.setText("OK");
ok_button.setTextNormalPressedcolor(Color.WHITE, Color.CYAN);
ok_button.setBgNormalPressedcolor(Color.GREEN, Color.GRAY);
cancel_button.setRadius(15);
cancel_button.setText("Cancel");
cancel_button.setTextNormalPressedcolor(Color.WHITE, Color.CYAN);
cancel_button.setBgNormalPressedcolor(Color.RED, Color.GRAY);
final DialogActivityListener listener = (DialogActivityListener) getActivity();
listener.onDialogActivitySoftInput(mLinearlayout);
male.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mGender.setText("male");
}
});
female.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
mGender.setText("female");
}
});
ok_button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
listener.onDialogActivityComplete(mUsername, mHeight, mGender);
}
});
cancel_button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
mUsername.setText("");
mHeight.setText("");
mGender.setText("");
getDialog().dismiss();
}
});
return view;
}
public void onResume() {
super.onResume();
Window window = getDialog().getWindow();
window.setLayout(window.getAttributes().width, 900);//设置dialog的宽度
window.setLayout(window.getAttributes().height, 1000);//Here!
window.setGravity(Gravity.CENTER);
}
}
最后实现的效果图