简单的圆角Dialog
来源:互联网 发布:妆前乳 知乎 编辑:程序博客网 时间:2024/06/05 13:24
最近看到很多朋友被圆角的Dialog所困,就忍不住写个博客了。现在和我一起简单的完成代码编写吧。
1.首先圆角的dialog当然需要圆角的背景
在drawable文件夹下配置圆角的文件bg_dialog.xml
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF" /> <stroke android:width="1dip" android:color="#bfbfbf" /> <corners android:radius="10dp" /></shape>2.自定义一个Dialog
PromptDialog.class
public class PromptDialog extends Dialog { private TextView tv_title,tv_content; private Button btn_cancle,btn_confirm; private View view; private Context context; private String title,content,cancle,sure;public PromptDialog(Context context,String title,String content,String cancle,String sure) {super(context);// TODO Auto-generated constructor stubthis.context = context;this.cancle = cancle;this.sure = sure;this.title = title;this.content = content;} @SuppressLint("NewApi") public void showDialog(android.view.View.OnClickListener cancleonclick,android.view.View.OnClickListener sureonclick){ Window window = getWindow(); window.requestFeature(window.FEATURE_NO_TITLE); view = LayoutInflater.from(context).inflate(R.layout.dialog_confirm, null); tv_title = (TextView) view.findViewById(R.id.tv_title); tv_content = (TextView) view.findViewById(R.id.tv_content); btn_cancle = (Button) view.findViewById(R.id.btn_cancle); btn_confirm = (Button) view.findViewById(R.id.btn_confirm); tv_title.setText(title); tv_content.setText(content); btn_cancle.setText(cancle); btn_confirm.setText(sure); btn_cancle.setOnClickListener(cancleonclick); btn_confirm.setOnClickListener(sureonclick); LayoutParams params = new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.CLIP_HORIZONTAL); this.setContentView(view, params); this.setCanceledOnTouchOutside(false);this.show(); }}
dialog的XML文件,在布局文件中引用bg_dialog.xml做背景
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" android:background="@drawable/bg_dialog" android:orientation="vertical" > <RelativeLayout android:id="@+id/relative_title" android:layout_width="match_parent" android:layout_height="40dp" > <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" android:text="系统消息" android:textSize="16sp" android:textColor="#000000" /></RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" > <TextView android:id="@+id/tv_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="内容" android:textSize="15sp" android:textColor="#000000" /></RelativeLayout><View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/gray_line_or_boder" /><LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:orientation="horizontal" > <Button android:id="@+id/btn_cancle" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:text="取消" android:background="@null" android:textColor="@color/Orange" android:textSize="16sp" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/gray_line_or_boder" /> <Button android:id="@+id/btn_confirm" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:text="确定" android:background="@null" android:textColor="@color/Orange" android:textSize="16sp" /> </LinearLayout></LinearLayout>3.在Activity中的调用
public class TestActivity extends ActionBarActivity { private Button button1; private PromptDialog dialog;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_test);button1 = (Button) findViewById(R.id.button1);button1.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubdialog = new PromptDialog(TestActivity.this, "系统提示", "简历完整度不足百分之70", "取消", "继续");dialog.showDialog(cancleListenter, confirmLinstener);}});}//取消监听OnClickListener cancleListenter = new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(dialog.isShowing()){dialog.dismiss();}}};//确定监听OnClickListener confirmLinstener = new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(dialog.isShowing()){dialog.dismiss();}}};}
效果图运行下:
大家会看到效果图上dialog的背景虽然是圆的但是,四个圆角外有余白。这就这种情况很正常,在PromptDialog.class类中加上 window.setBackgroundDrawableResource(R.color.touming);
R.color.touming 的颜色为 #00000000
最后效果图:
0 0
- 简单的圆角Dialog
- 简单的自定义一个拥有圆角的Dialog
- android 半透明圆角dialog的简单实现
- android 半透明圆角dialog的简单实现
- 简单的dialog
- 最简单的Dialog
- 简单、优美的Dialog
- Dialog的简单使用
- 简单的dialog使用。。
- Dialog的简单使用
- Dialog的简单使用
- 简单的通用dialog
- 关于Dialog的简单体验
- js 实现简单的Dialog
- 构建简单的Dialog步骤
- 多选dialog的简单实现
- Dialog的简单补充说明
- 自定义Dialog的简单实现
- MFC CEdit限定输入数字
- python最简单直接的自定义模块导入方法
- iOS 图片点击放大封装
- iOS中的多态是什么?
- Android JSBridge的原理与实现
- 简单的圆角Dialog
- 士兵杀敌(一)
- iOS文件目录
- 二叉树的子结构
- slf4j--源码解析
- python 入门学习
- Android通知栏多条通知冲突的问题
- iOS开发中如何合理地制造BUG
- 2016寒假训练——搜索