Android 自定义AlertDialog
16lz
2021-01-23
AlertDialog在Android开发中经常用到,在这里分享一个漂亮的自定义AlertDialog控件。
实现效果:
布局文件:
main.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" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/welcomeText" android:layout_gravity="center_horizontal" android:layout_marginTop="10dp"/> <Button android:id="@+id/button2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="点 击 出 现 对 话 框" > </Button></LinearLayout>
dialogview.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="wrap_content" android:layout_gravity="center_horizontal|center_vertical" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dip" android:layout_marginRight="20dip" android:background="@drawable/alert" android:gravity="center_horizontal" android:orientation="vertical" > <TextView android:id="@+id/dialog_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="17dip" android:textColor="#ffffff" android:textSize="16dip" android:textStyle="bold" /> <TextView android:id="@+id/dialog_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dip" android:gravity="center_horizontal" android:textColor="#ffffff" android:textSize="16dip" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="10dip" android:layout_marginTop="10dip" android:gravity="center_horizontal" android:orientation="horizontal" > <Button android:id="@+id/cancel" android:layout_width="0dip" android:layout_height="40dip" android:layout_gravity="left" android:layout_marginLeft="10dip" android:layout_weight="0.5" android:background="@drawable/custom_button1" android:textColor="@color/White" android:textStyle="bold" /> <Button android:id="@+id/ok" android:layout_width="0dip" android:layout_height="40dip" android:layout_marginBottom="10dip" android:layout_marginRight="10dip" android:layout_weight="0.5" android:background="@drawable/custom_button" android:textColor="@color/White" android:textStyle="bold" /> </LinearLayout> </LinearLayout></LinearLayout>
MainActivity:
package hi.braincol.example.iphoneAlert;import android.app.Activity;import android.app.Dialog;import android.os.Bundle;import android.view.View;import android.view.Window;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity {private Button button;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);button = (Button) findViewById(R.id.button);button.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View arg0) {showCustomMessage("警告!", "您真的要退出应用?");}});}private void showCustomMessage(String pTitle, final String pMsg) {final Dialog lDialog = new Dialog(MainActivity.this,android.R.style.Theme_Translucent_NoTitleBar);lDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);lDialog.setContentView(R.layout.dialogview);((TextView) lDialog.findViewById(R.id.dialog_title)).setText(pTitle);((TextView) lDialog.findViewById(R.id.dialog_message)).setText(pMsg);((Button) lDialog.findViewById(R.id.ok)).setText("确定");((Button) lDialog.findViewById(R.id.cancel)).setText("取消");((Button) lDialog.findViewById(R.id.ok)).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {lDialog.dismiss();Toast.makeText(getApplicationContext(), "确定",Toast.LENGTH_SHORT).show();}});((Button) lDialog.findViewById(R.id.cancel)).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {lDialog.dismiss();Toast.makeText(getApplicationContext(), "取消",Toast.LENGTH_SHORT).show();}});lDialog.show();}}
点击下载源码
更多相关文章
- [Android]ButterKnife-无尽之刃-绑定视图控件和事件的快速开发工
- Ubuntu12.04下的Android 源码编译
- Android 属性动画(Property Animation) 完全解析【附源码】
- [Android]Android系统启动流程源码分析
- [Android]瀑布流实例android_waterfall源码分析
- Android中Activity启动过程源码阅读笔记:
- Android实现购物车加减器控件