自定义AlertDialog布局
生活随笔
收集整理的這篇文章主要介紹了
自定义AlertDialog布局
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
先看效果圖:
附上代碼:
//?1.?布局文件轉換為View對象 LayoutInflater?inflater?=?LayoutInflater.from(this); RelativeLayout?layout?=?(RelativeLayout)?inflater.inflate(R.layout.alert_dialog_001,?null);//?2.?新建對話框對象 final?Dialog?dialog?=?new?AlertDialog.Builder(MainActivity.this).create(); dialog.setCancelable(false); dialog.show(); dialog.getWindow().setContentView(layout);//?3.?消息內容 TextView?dialog_msg?=?(TextView)?layout.findViewById(R.id.dialog_msg); dialog_msg.setText("你確定嗎?");//?4.?確定按鈕 Button?btnOK?=?(Button)?layout.findViewById(R.id.dialog_ok); btnOK.setOnClickListener(new?OnClickListener() {@Overridepublic?void?onClick(View?v){Toast.makeText(getApplicationContext(),?"ok",?Toast.LENGTH_SHORT).show();dialog.dismiss();} });//?5.?取消按鈕 Button?btnCancel?=?(Button)?layout.findViewById(R.id.dialog_cancel); btnCancel.setOnClickListener(new?OnClickListener() {@Overridepublic?void?onClick(View?v){Toast.makeText(getApplicationContext(),?"cancel",?Toast.LENGTH_SHORT).show();dialog.dismiss();} });//?6.?只顯示一個按鈕 btnCancel.setVisibility(View.GONE); LinearLayout.LayoutParams?params?=?new?LinearLayout.LayoutParams(DensityUtil.dip2px(context,?120),?DensityUtil.dip2px(context,?48)); btnOK.setLayoutParams(params); <?xml?version="1.0"?encoding="utf-8"?> <RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="#00000000"?><RelativeLayoutandroid:id="@+id/rl_dialog_content"android:layout_width="match_parent"android:layout_height="200dp"android:layout_marginLeft="40dp"android:layout_marginRight="40dp"android:background="@drawable/shape_top_corner_no_bottom_line"android:padding="8dp"?><TextViewandroid:id="@+id/dialog_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:gravity="center"android:singleLine="true"android:text="提示"android:textSize="18sp"?/><TextViewandroid:id="@+id/dialog_msg"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_centerInParent="true"android:layout_marginLeft="20dp"android:layout_marginRight="20dp"android:gravity="center"android:maxLines="3"android:text="你父母知道嗎?"android:textSize="18sp"?/><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:gravity="center"android:orientation="horizontal"?><Buttonandroid:id="@+id/dialog_ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:background="@drawable/dialog_btn_ok"android:text="確定"android:textColor="#ffffff"?/><Buttonandroid:id="@+id/dialog_cancel"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dp"android:layout_weight="1"android:background="@drawable/dialog_btn_cancle"android:text="取消"?/></LinearLayout></RelativeLayout></RelativeLayout>像素轉換工具類:
import?android.content.Context;public?class?DensityUtil {/***?根據手機的分辨率從?dp?的單位?轉成為?px(像素)*/public?static?int?dip2px(Context?context,?float?dpValue){final?float?scale?=?context.getResources().getDisplayMetrics().density;return?(int)?(dpValue?*?scale?+?0.5f);}/***?根據手機的分辨率從?px(像素)?的單位?轉成為?dp*/public?static?int?px2dip(Context?context,?float?pxValue){final?float?scale?=?context.getResources().getDisplayMetrics().density;return?(int)?(pxValue?/?scale?+?0.5f);} }背景樣式:
<?xml?version="1.0"?encoding="utf-8"?> <selector?xmlns:android="http://schemas.android.com/apk/res/android"><item><shape><stroke?android:width="2dp"?android:color="#CCCCCC"/><solid?android:color="#FFFFFF"?/><corners?android:radius="6dp"?/></shape></item></selector>還有兩個按鈕圖片就不傳了,大家自定義。
轉載于:https://my.oschina.net/u/1036767/blog/266317
總結
以上是生活随笔為你收集整理的自定义AlertDialog布局的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【iHMI43 应用演示】之 modbu
- 下一篇: mysql ERROR 1045 (28