仿iOS弹出Dialog
2016-09-23 18:18
302 查看
仿iOS提示框,其实很简单,重点就是把window默认背景取消直接上代码
先看效果图
![](https://img-blog.csdn.net/20160923181635647)
1:自定义dialog 传入布局和style
2:定义dialog布局文件
3:定义style windowBackground取消window默认背景 不然四角会有黑影 ,backgroundDimEnabled是否四周变暗
4:背景文件
5:调用显示dialog
OK完成 灰常简单
先看效果图
1:自定义dialog 传入布局和style
package lud.com.iosdialogdemo; import android.app.Dialog; import android.content.Context; import android.os.Bundle; /** * Created by lud on 2016/7/1. * 自定义dialog */ public class CustomerDialog extends Dialog { private Context context; private int resId; public CustomerDialog(Context context, int resLayout) { this(context,0,0); } public CustomerDialog(Context context, int themeResId, int resLayout) { super(context, themeResId); this.context = context; this.resId = resLayout; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(resId); } @Override protected void onStop() { super.onStop(); } }
2:定义dialog布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="275dp" android:layout_height="160dp" android:background="@drawable/dialog_ios_bg" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:gravity="center" android:text="确认删除此项内容?" android:textColor="#666666" android:textSize="18sp" /> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#acacac" /> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal"> <TextView android:id="@+id/cancel" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:text="取消" android:textColor="#666666" android:textSize="15sp" /> <TextView android:id="@+id/ok" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:text="确认" android:textColor="#fe6000" android:textSize="15sp" /> </LinearLayout> </LinearLayout>
3:定义style windowBackground取消window默认背景 不然四角会有黑影 ,backgroundDimEnabled是否四周变暗
<style name="customDialog" parent="Theme.AppCompat.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowNoTitle">true</item> <item name="android:backgroundDimEnabled">true</item> 4000 <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowBackground">@android:color/transparent</item> </style>
4:背景文件
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="10dp" /> <solid android:color="#FFFFFF" /> </shape>
5:调用显示dialog
package lud.com.iosdialogdemo; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private TextView mTvCancel1; private TextView mTvOK1; private CustomerDialog customDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void showDialog1(View view) { customDialog = new CustomerDialog(this, R.style.customDialog, R.layout.dialog1); customDialog.show(); initDialogView(); } private void initDialogView() { mTvCancel1 = (TextView) customDialog.findViewById(R.id.cancel); mTvOK1 = (TextView) customDialog.findViewById(R.id.ok); mTvCancel1.setOnClickListener(new DialogClick()); mTvOK1.setOnClickListener(new DialogClick()); } class DialogClick implements View.OnClickListener { @Override public void onClick(View v) { switch (v.getId()) { case R.id.cancel: customDialog.dismiss(); break; case R.id.ok: customDialog.dismiss(); Toast.makeText(MainActivity.this, "点击了确认", Toast.LENGTH_SHORT).show(); break; } } } }
OK完成 灰常简单
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories