您的位置:首页 > 移动开发 > IOS开发

Dialog 之高仿IOS

2017-10-30 13:58 190 查看
不得不说IOS系统的对话框确实漂亮 那么 我们就也来上一套






布局文件很简单   就是照着效果图自己贴  考虑到适配的问题  还需要自己做处理

public class DialogIos extends Dialog {

private Context context;
private String titleMessage;
private String contontMessage;

public DialogIos(Context context, String titleMessage,String contontMessage) {
super(context,R.style.dialog_custom);
this.context = context;
this.titleMessage = titleMessage;
this.contontMessage = contontMessage;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Window window = getWindow();
window.setGravity(Gravity.CENTER);
setContentView(R.layout.dialog_ios_layout);
setCanceledOnTouchOutside(false);// 点击Dialog外部消失
initView();
}

private void initView() {
TextView diolog_title = (TextView) findViewById(R.id.diolog_title);
diolog_title.setText(titleMessage);
TextView diolog_contont = (TextView) findViewById(R.id.diolog_contont);
diolog_contont.setText(contontMessage);
TextView comfirm_choose = (TextView) findViewById(R.id.comfirm_choose);
comfirm_choose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (null != onclickItemListen){
onclickItemListen.OnitemClick("1");
}
}
});
TextView cancle_choose = (TextView) findViewById(R.id.cancle_choose);
cancle_choose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (null != onclickItemListen){
onclickItemListen.OnitemClick("0");
}
}
});
}

public interface OnclickItemListen{
void OnitemClick(String contont);
}
public OnclickItemListen onclickItemListen;
public void SetOnCLickListen(OnclickItemListen onclickItemListen){
this.onclickItemListen = onclickItemListen;
}
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/button_write_back"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="70dp"
android:gravity="center"
android:orientation="vertical">

<TextView
android:id="@+id/diolog_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:gravity="center"
android:text="提示"
android:textColor="@color/black"
android:textSize="16dp" />

<TextView
android:id="@+id/diolog_contont"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="是否删除该地址"
android:textColor="@color/black"
android:textSize="14dp" />
</LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="@color/line_eee" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp">

<TextView
android:id="@+id/cancle_choose"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="取消"
android:textColor="#00f"
android:textSize="15dp" />

<View
android:layout_width="1px"
android:layout_height="match_parent"
android:background="@color/line_eee" />

<TextView
android:id="@+id/comfirm_choose"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:text="确定"
android:textColor="@color/red_color"
android:textSize="15dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>

<!-- dialog样式 -->
<style name="dialog_custom" parent="@android:style/Theme.Dialog">
<item name="android:windowIsFloating">true</item>    <!--是否浮在界面上
4000
-->
<item name="android:windowIsTranslucent">true</item> <!--是否半透明-->
<item name="android:windowNoTitle">true</item>       <!--是否有标题-->
<item name="android:windowBackground">@android:color/transparent</item> <!--窗口背景色透明-->
<item name="android:backgroundDimEnabled">true</item> <!--背景是否模糊显示-->
</style>


具体用法

DialogIos dialogIos = new DialogIos(AddHbuyDynamicsActivity.this,"信息未完善","完善用户名、手机号、邮箱、头像、地区\n生日等才可以发帖哦~");
dialogIos.SetOnCLickListen(new DialogIos.OnclickItemListen() {
@Override
public void OnitemClick(String contont) {
if ("1".equals(contont)){
startActivity(new Intent(AddHbuyDynamicsActivity.this, HbuyUserDetailActivity.class));
dialogIos.cancel();
}else {
dialogIos.cancel();
}
}
});
dialogIos.show();


写的很仓促 稍后会将他做一个完善 网上也有一个仿IOS的 SuperDialog 大家可以去看一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: