安卓自定义Dialog(二)

来源:互联网 发布:数据恢复公司 编辑:程序博客网 时间:2024/05/17 23:49

这次讲的自定义Dialog相对于上次有所提升,多了一个tittle和一个"取消"的时间监听。

public static Dialog CreatDialog(String title, String msg, Context context,OnClickListener ok, OnClickListener cancel) {final Dialog dialog = new Dialog(context, R.style.dialog);DisplayMetrics dm = context.getResources().getDisplayMetrics();LayoutInflater inflater = LayoutInflater.from(context);View view = inflater.inflate(R.layout.dialog_custom, null);TextView titles = (TextView) view.findViewById(R.id.custom_title);titles.setText(title);TextView msgs = (TextView) view.findViewById(R.id.custom_msg);msgs.setText(msg);Button oks = (Button) view.findViewById(R.id.custom_bt_ok);oks.setOnClickListener(ok);Button cancels = (Button) view.findViewById(R.id.custom_bt_cancel);if (cancel == null) {cancels.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {dialog.dismiss();}});} else {cancels.setOnClickListener(cancel);}dialog.setContentView(view, new LinearLayout.LayoutParams(dm.widthPixels * 4 / 5, LinearLayout.LayoutParams.MATCH_PARENT));return dialog;}public static Dialog create(String title, String msg, Context context,OnClickListener ok, OnClickListener cancel) {Dialog dialog = CreatDialog(title, msg, context, ok, cancel);return dialog;}public static Dialog create(String title, String msg, Context context,OnClickListener ok) {Dialog dialog = create(title, msg, context, ok, null);return dialog;}
布局文件

<?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" >    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@drawable/popwindow_top"        android:gravity="center"        android:orientation="horizontal" >        <TextView            android:id="@+id/custom_title"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_marginBottom="11dp"            android:layout_marginTop="11dp"            android:text="asdada"            android:textColor="@color/blue_deep"            android:textSize="@dimen/lcdtvTitle"            android:textStyle="bold" />    </LinearLayout>    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@color/white"        android:gravity="center"        android:orientation="horizontal" >        <TextView            android:layout_marginTop="44dp"            android:layout_marginBottom="66dp"            android:id="@+id/custom_msg"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:gravity="center_horizontal"            android:text="asdadasddasdadasdadadsadadada"            android:textColor="@color/blueSky"            android:textSize="@dimen/lcdtvContent" />    </LinearLayout>    <ImageView style="@style/iv" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal" >        <Button            android:id="@+id/custom_bt_ok"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:background="@drawable/btn_bottomleft_bg"            android:text="@android:string/ok"            android:textColor="@drawable/textcolor"            android:textSize="@dimen/lcdtvTitle" />        <View            android:layout_width="1dp"            android:layout_height="match_parent"            android:background="@color/gray_shallow" />        <Button            android:id="@+id/custom_bt_cancel"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:background="@drawable/btn_bottomright_bg"            android:text="@android:string/cancel"            android:textColor="@drawable/textcolor"            android:textSize="@dimen/lcdtvTitle" />    </LinearLayout></LinearLayout>
界面


效果图