dialog的xml布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="40dp" android:gravity="center" android:paddingRight="20dp" android:paddingLeft="20dp" android:background="@drawable/bg_dialog_gray"> <ImageView android:layout_width="20dp" android:layout_height="20dp" android:background="@mipmap/ic_zhuyi"/> <TextView android:id="@+id/tv_error_tip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="手机号格式输入错误" android:textColor="#ffffffff" android:textSize="14sp" android:layout_marginLeft="15dp"/> </LinearLayout>
style文件:
<!-- 对话框样式 --> <style name="MyToastDialog" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item><!--是否浮现在activity之上--> <item name="android:backgroundDimEnabled">false</item> <!--是否模糊-->(背景全透明) </style>
dialog:
import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.widget.TextView; import com.chinaso.so.R; import butterknife.BindView; import butterknife.ButterKnife; public class ErrorTipDialog extends Dialog { @BindView(R.id.tv_error_tip) TextView tv_error_tip; public Context context; public String tip; public ErrorTipDialog(Context context, int themeResId,String tip) { super(context,themeResId); // TODO Auto-generated constructor stub this.context = context; this.tip = tip; } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.setContentView(R.layout.dialog_error_tip); ButterKnife.bind(this); tv_error_tip.setText(tip); } }
使用:
private void showTipDialog(String tip) { ErrorTipDialog errorTipDialog = new ErrorTipDialog(mContext, R.style.MyToastDialog,tip); errorTipDialog.show(); new Handler().postDelayed(new Runnable(){ @Override public void run() { errorTipDialog.dismiss(); } }, 3000); }