alertdialog.builder 自定义弹窗

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center">

    <ImageView
        android:id="@+id/titleImage"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/worning"
        android:layout_marginBottom="-25dp"
        android:layout_centerHorizontal="true"
        android:visibility="invisible" />

    <RelativeLayout
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_below="@id/titleImage"
        android:background="@drawable/dialog_background">
        <RelativeLayout
            android:id="@+id/dialog_tip"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginTop="30dp"
            android:layout_centerHorizontal="true"
           >
            <View
                android:id="@+id/dialog_line_one"
                android:layout_height="0.5dp"
                android:layout_width="70dp"
                android:layout_marginLeft="0dp"
                android:background="#AAA"
                android:layout_centerVertical="true"
                android:layout_marginTop="45dp"
                />
            <TextView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_marginLeft="12dp"
                android:layout_marginTop="12dp"
                android:layout_toRightOf="@id/dialog_line_one"
                android:id="@+id/dialog_title"
                android:text="温馨提示"
                android:textColor="#AAA"
                android:textSize="20sp" />
            <View
                android:id="@+id/dialog_line_two"
                android:layout_height="0.5dp"
                android:layout_width="70dp"
                android:layout_marginLeft="20dp"
                android:layout_toRightOf="@id/dialog_title"
                android:background="#AAA"
                android:layout_centerVertical="true"
                android:layout_marginTop="45dp"
                />
        </RelativeLayout>


        <TextView
            android:id="@+id/dialog_content"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:text="您的手机存储控件不足\n请清理空间后重试"
            android:gravity="center_horizontal"
            android:textSize="20sp"
            android:textColorHighlight="#2151E0"
            android:layout_centerHorizontal="true"
            android:layout_below="@id/dialog_tip"
            />
        <LinearLayout
            android:id="@+id/dialog_btns"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_below="@id/dialog_content">


            <Button
                android:layout_weight="1"
                android:id="@+id/dialog_btn_positive"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_marginTop="30dp"
                android:text="确定"
                android:textColor="#2cBF5F"
                android:background="@drawable/btn_green_back"/>
            <Button
                android:layout_weight="1"
                android:id="@+id/dialog_btn_nagtive"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_toRightOf="@id/dialog_btn_positive"
                android:layout_marginTop="30dp"
                android:layout_marginLeft="20dp"
                android:text="取消"
                android:textColor="#2cBF5F"
                android:background="@drawable/btn_green_back"
                android:visibility="gone"
                />
        </LinearLayout>
        <View
            android:layout_height="30dp"
            android:layout_width="match_parent"
            android:layout_below="@id/dialog_btns"/>

    </RelativeLayout>

    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@drawable/worning"
        android:layout_marginBottom="-25dp"
        android:layout_centerHorizontal="true" />
</RelativeLayout>

  

 

弹窗实现方式大概有三种,这是使用系统的弹窗来实现的。标志性的方法是setview()

final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(LoginActivity.this);
final AlertDialog alertDialog = dialogBuilder.create();
LayoutInflater inflater=LayoutInflater.from(LoginActivity.this);
View view = inflater.inflate(R.layout.popup, null);

TextView tv_content = (TextView) view.findViewById(R.id.dialog_content);
tv_content.setText("确定要退出吗?");

TextView tv_title= (TextView) view.findViewById(R.id.dialog_title);
tv_title.setText("温馨提示");

Button dialog_btn_positive= (Button) view.findViewById(R.id.dialog_btn_positive);
dialog_btn_positive.setText("好");
dialog_btn_positive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alertDialog.dismiss();
finish();
}
});

Button dialog_btn_nagtive= (Button) view.findViewById(R.id.dialog_btn_nagtive);
dialog_btn_nagtive.setText("取消");
dialog_btn_nagtive.setVisibility(View.VISIBLE);
dialog_btn_nagtive.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
alertDialog.dismiss();
}
});

alertDialog.show();
alertDialog.setContentView(view);

---11.12日,在魅族手机MX4以上,有人说会感叹号后面有个矩形的背景色----
说下解决办法 :
很简单 ,至修改一个地方就可以
new AlertDialog.Builder(new ContextThemeWrapper(MyInfoActivity.this,R.style.WinDialog));

<style name="WinDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:background">@android:color/transparent</item>
</style>




posted @ 2015-11-09 15:50  Alter  阅读(867)  评论(0编辑  收藏  举报