android 自定义提示框效果(1)
2016-01-20 14:55
260 查看
在android 项目中,很多时候要用到弹出框效果,不过系统自带的AlertDialog样式有时满足不了我们项目的需求,这时就要自定义提示框效果了,比如如下这种圆角矩形的提示框效果:
下面我写两种方式去实现它:
第一种:.自定义View的形式
写个类继承Dialog,在构造方法中setContentView()设置布局文件,然后注册监听事件
activity 布局 xml文件
自定义View
下面我写两种方式去实现它:
第一种:.自定义View的形式
写个类继承Dialog,在构造方法中setContentView()设置布局文件,然后注册监听事件
activity 布局 xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:id="@+id/btn_one" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="第一种写法"/>
</LinearLayout>
对话框xml文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayoutandroid:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="@drawable/rectangle"android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:paddingBottom="10dp" android:paddingTop="10dp" android:text="您确定取消此操作吗?"android:textColor="@color/black"android:textSize="20sp"/> <View android:layout_width="wrap_content" android:layout_height="0.6dp" android:background="@color/line"/> <LinearLayoutandroid:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/tv_no" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:paddingBottom="10dp" android:paddingTop="10dp" android:text="否" android:textColor="@color/blue"android:textSize="20sp"/> <View android:layout_width="0.6dp" android:layout_height="match_parent" android:background="@color/line" /> <TextView android:id="@+id/tv_yes" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center_horizontal" android:paddingBottom="10dp" android:paddingTop="10dp" android:text="是" android:textColor="@color/blue"android:textSize="20sp"/> </LinearLayout> </LinearLayout> </LinearLayout>圆角矩形样式
rectangle.xml文件
<?xml version="1.0" encoding="utf-8"?> <!--画矩形 --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 实心填充 --> <solid android:color="@color/white" /><!-- 边角的圆弧半径 --> <corners android:radius="10dp" /> </shape>
color值
<color name="white">#FFFFFF</color>
<color name="blue">#007aff</color>
<color name="line">#dcdcdc</color>
<color name="black">#323232</color>
自定义View
public class CancelPayDialog extends Dialog { public CancelPayDialog(Context context) { super(context, R.style.PayModeDialog); setContentView(R.layout.cancel_pay_dialog); setCancelable(false); setCanceledOnTouchOutside(false);//把对话框变成模态 } public void setOnClick(View.OnClickListener onClick) { findViewById(R.id.tv_yes).setOnClickListener(onClick); findViewById(R.id.tv_no).setOnClickListener(onClick); } }
public class CancelPayDialogActivity extends Activity { CancelPayDialog CancelPayDialog; Dialog cancelPayDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_cancel_dialog); //第一种写法 findViewById(R.id.btn_one).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { CancelPayDialog = new CancelPayDialog(CancelPayDialogActivity.this); CancelPayDialog.setOnClick(new View.OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv_yes://确定 //可以放要处理的操作 break; case R.id.tv_no://取消 CancelPayDialog.dismiss(); break; default: break; } } }); CancelPayDialog.show(); } }); }
相关文章推荐
- 使用Android Studio调试Android Framework代码
- android命令
- Android 四大大图片缓存(Imageloader,Picasso,Glide,Fresco)原理、特性对比
- android inflater 用法
- Android Studio 日常问题处理
- Android Intent详解
- android监听联系人变化的方法
- android shape记录
- 解决Android Studio 导入工程的问题
- Android 进程间通讯四种方式
- android meta-data 使用
- Android缓冲流
- Android Manifest.xml中intent-filter的(data)
- 技术交流群
- Android状态栏一体化 (改变状态栏的背景颜色)
- Android 代码改变ImageView的大小
- android greenDao(二)
- Android线程问题
- Android换肤之——插件换肤
- 自定义控件