android开发:弹框(AlertDialog)和提示信息Toast字体大小颜色设置
一、AlertDialog:
AlertDialog.Builder builder = new AlertDialog.Builder(ReturnActivity.this, android.support.design.R.style.Base_Theme_AppCompat_Dialog_Alert); builder.setTitle("温馨提示"); builder.setMessage("是否进行下一个病人?"); builder.setPositiveButton("是", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { //处理你的操作 } }); builder.setNegativeButton("否", null); AlertDialog dialog = builder.create();
//弹框设置背景颜色
final Window window = dialog.getWindow();
window.setBackgroundDrawable(new ColorDrawable(Color.WHITE)); dialog.show(); //弹框设置字体颜色 dialog.getButton(AlertDialog.BUTTON_POSITIVE).setTextColor(Color.BLUE); dialog.getButton(DialogInterface.BUTTON_NEGATIVE).setTextColor(Color.BLUE); try { //获取mAlert对象 Field mAlert = AlertDialog.class.getDeclaredField("mAlert"); mAlert.setAccessible(true); Object mAlertController = mAlert.get(dialog); //获取mMessageView并设置大小颜色 Field mMessage = mAlertController.getClass().getDeclaredField("mMessageView"); mMessage.setAccessible(true); TextView mMessageView = (TextView) mMessage.get(mAlertController); mMessageView.setTextColor(Color.BLUE); //mMessageView.setTextSize(30); //获取mTitleView并设置大小颜色 Field mTitle = mAlertController.getClass().getDeclaredField("mTitleView"); mTitle.setAccessible(true); TextView mTitleView = (TextView) mTitle.get(mAlertController); mTitleView.setTextColor(Color.BLUE); //mTitleView.setTextSize(30); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); }
二、Toast:
private Toast mToast; private void showTip(final String str){ runOnUiThread(new Runnable() { @Override public void run() { if (mToast == null) { mToast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT); LinearLayout layout = (LinearLayout) mToast.getView(); TextView tv = (TextView) layout.getChildAt(0); tv.setTextSize(18); tv.setTextColor(R.color.white); } //mToast.cancel(); mToast.setGravity(Gravity.CENTER, 0, 0); mToast.setText(str); mToast.show(); } }); }
例如:Toast提示"登录成功",直接使用showTip("登录成功")即可。
注意:fragment里面使用时将runOnUiThread替换成getActivity().runOnUiThread即可。