前言

小米手机新系统,应用 Toast自带应用名,如:“应用名:Toast信息”(Toast会显示app的名称+显示的内容)

方法一:

需要先给Toast的message设置为空,然后再设置需要提示的message

public static void showShort(Context context, CharSequence message) {Toast mToast = Toast.makeText(context, “”, Toast.LENGTH_LONG);mToast.setText(message);mToast.show();}

方法二:

使用 Toast工具类

ToastUtils.showShort(R.string.xxxxxx);
/*** Tooast相关工具类*/
public class ToastUtils {private static final int COLOR_DEFAULT = 0xFEFFFFFF;private static final String NULL = "null";private static IToast iToast;private static int sGravity = -1;private static int sXOffset = -1;private static int sYOffset = -1;private static int sBgColor = COLOR_DEFAULT;private static int sBgResource = -1;private static int sMsgColor = COLOR_DEFAULT;private static int sMsgTextSize = -1;final static Map<Activity, Set<OnActivityDestroyedListener>> mDestroyedListenerMap = new HashMap<>();public interface OnActivityDestroyedListener {void onActivityDestroyed(Activity activity);}static void addOnActivityDestroyedListener(final Activity activity,final OnActivityDestroyedListener listener) {if (activity == null || listener == null) return;Set<OnActivityDestroyedListener> listeners;if (!mDestroyedListenerMap.containsKey(activity)) {listeners = new HashSet<>();mDestroyedListenerMap.put(activity, listeners);} else {listeners = mDestroyedListenerMap.get(activity);if (listeners.contains(listener)) return;}listeners.add(listener);}public static void runOnUiThread(final Runnable runnable) {if (Looper.myLooper() == Looper.getMainLooper()) {runnable.run();} else {new Handler(Looper.getMainLooper()).post(runnable);}}public static void runOnUiThreadDelayed(final Runnable runnable, long delayMillis) {new Handler(Looper.getMainLooper()).postDelayed(runnable, delayMillis);}private ToastUtils() {throw new UnsupportedOperationException("u can't instantiate me...");}/*** 设定重力。** @param gravity 重力。* @param xOffset X轴偏移,以像素为单位。* @param yOffset Y轴偏移,以像素为单位。*/public static void setGravity(final int gravity, final int xOffset, final int yOffset) {sGravity = gravity;sXOffset = xOffset;sYOffset = yOffset;}/*** 设置背景颜色。** @param backgroundColor 背景的颜色。*/public static void setBgColor(@ColorInt final int backgroundColor) {sBgColor = backgroundColor;}/*** 设置背景资源。** @param bgResource 背景资源。*/public static void setBgResource(@DrawableRes final int bgResource) {sBgResource = bgResource;}/*** 设置消息的颜色。** @param msgColor 消息的颜色。*/public static void setMsgColor(@ColorInt final int msgColor) {sMsgColor = msgColor;}/*** 设置消息的文本大小。** @param textSize 消息的文本大小。*/public static void setMsgTextSize(final int textSize) {sMsgTextSize = textSize;}/*** 在短时间内弹出。** @param text 文本。*/public static void showShort(final CharSequence text) {show(text == null ? NULL : text, Toast.LENGTH_SHORT);}/*** 在短时间内弹出。** @param resId 文本的资源ID。*/public static void showShort(@StringRes final int resId) {show(resId, Toast.LENGTH_SHORT);}/*** 在短时间内弹出。** @param resId 文本的资源ID。* @param args  args。*/public static void showShort(@StringRes final int resId, final Object... args) {show(resId, Toast.LENGTH_SHORT, args);}/*** 在短时间内弹出。** @param args   args。* @param format 格式。*/public static void showShort(final String format, final Object... args) {show(format, Toast.LENGTH_SHORT, args);}/*** 长时间展示吐司.** @param text 文本.*/public static void showLong(final CharSequence text) {show(text == null ? NULL : text, Toast.LENGTH_LONG);}/*** 长时间展示吐司。** @param resId 文本的资源ID。*/public static void showLong(@StringRes final int resId) {show(resId, Toast.LENGTH_LONG);}/*** 长时间展示吐司。** @param resId 文本的资源ID。* @param args  args。*/public static void showLong(@StringRes final int resId, final Object... args) {show(resId, Toast.LENGTH_LONG, args);}/*** 长时间展示吐司。** @param args   args。* @param format 格式。*/public static void showLong(final String format, final Object... args) {show(format, Toast.LENGTH_LONG, args);}/*** 在短时间内显示自定义吐司。** @param layoutId 要加载的XML布局资源的ID。*/public static View showCustomShort(@LayoutRes final int layoutId) {return showCustomShort(getView(layoutId));}/*** 在短时间内显示自定义吐司。** @param view 吐司的视图。*/public static View showCustomShort(final View view) {show(view, Toast.LENGTH_SHORT);return view;}/*** 长时间显示定制吐司。** @param layoutId 要加载的XML布局资源的ID。*/public static View showCustomLong(@LayoutRes final int layoutId) {return showCustomLong(getView(layoutId));}/*** 长时间显示定制吐司。** @param view 吐司的视图。*/public static View showCustomLong(final View view) {show(view, Toast.LENGTH_LONG);return view;}/*** 取消吐司。*/public static void cancel() {if (iToast != null) {iToast.cancel();}}private static void show(final int resId, final int duration) {try {CharSequence text = MyApplication.getmContext().getText(resId);show(text, duration);} catch (Exception ignore) {show(String.valueOf(resId), duration);}}private static void show(final int resId, final int duration, final Object... args) {try {CharSequence text = MyApplication.getmContext().getText(resId);String format = String.format(text.toString(), args);show(format, duration);} catch (Exception ignore) {show(String.valueOf(resId), duration);}}private static void show(final String format, final int duration, final Object... args) {String text;if (format == null) {text = NULL;} else {text = String.format(format, args);if (text == null) {text = NULL;}}show(text, duration);}private static void show(final CharSequence text, final int duration) {runOnUiThread(new Runnable() {@SuppressLint("ShowToast")@Overridepublic void run() {cancel();iToast = ToastFactory.makeToast(MyApplication.getmContext(), text, duration);final View toastView = iToast.getView();if (toastView == null) return;final TextView tvMessage = toastView.findViewById(android.R.id.message);if (sMsgColor != COLOR_DEFAULT) {tvMessage.setTextColor(sMsgColor);}if (sMsgTextSize != -1) {tvMessage.setTextSize(sMsgTextSize);}if (sGravity != -1 || sXOffset != -1 || sYOffset != -1) {iToast.setGravity(sGravity, sXOffset, sYOffset);}setBg(tvMessage);iToast.show();}});}private static void show(final View view, final int duration) {runOnUiThread(new Runnable() {@Overridepublic void run() {cancel();iToast = ToastFactory.newToast(MyApplication.getmContext());iToast.setView(view);iToast.setDuration(duration);if (sGravity != -1 || sXOffset != -1 || sYOffset != -1) {iToast.setGravity(sGravity, sXOffset, sYOffset);}setBg();iToast.show();}});}private static void setBg() {if (sBgResource != -1) {final View toastView = iToast.getView();toastView.setBackgroundResource(sBgResource);} else if (sBgColor != COLOR_DEFAULT) {final View toastView = iToast.getView();Drawable background = toastView.getBackground();if (background != null) {background.setColorFilter(new PorterDuffColorFilter(sBgColor, PorterDuff.Mode.SRC_IN));} else {if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {toastView.setBackground(new ColorDrawable(sBgColor));} else {toastView.setBackgroundDrawable(new ColorDrawable(sBgColor));}}}}private static void setBg(final TextView tvMsg) {if (sBgResource != -1) {final View toastView = iToast.getView();toastView.setBackgroundResource(sBgResource);tvMsg.setBackgroundColor(Color.TRANSPARENT);} else if (sBgColor != COLOR_DEFAULT) {final View toastView = iToast.getView();Drawable tvBg = toastView.getBackground();Drawable msgBg = tvMsg.getBackground();if (tvBg != null && msgBg != null) {tvBg.setColorFilter(new PorterDuffColorFilter(sBgColor, PorterDuff.Mode.SRC_IN));tvMsg.setBackgroundColor(Color.TRANSPARENT);} else if (tvBg != null) {tvBg.setColorFilter(new PorterDuffColorFilter(sBgColor, PorterDuff.Mode.SRC_IN));} else if (msgBg != null) {msgBg.setColorFilter(new PorterDuffColorFilter(sBgColor, PorterDuff.Mode.SRC_IN));} else {toastView.setBackgroundColor(sBgColor);}}}private static View getView(@LayoutRes final int layoutId) {LayoutInflater inflate =(LayoutInflater) MyApplication.getmContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);//noinspection ConstantConditionsreturn inflate.inflate(layoutId, null);}static class ToastFactory {static IToast makeToast(Context context, CharSequence text, int duration) {//            if (NotificationManagerCompat.from(context).areNotificationsEnabled()) {//                return new SystemToast(makeNormalToast(context, text, duration));
//            }return new ToastWithoutNotification(makeNormalToast(context, text, duration));}static IToast newToast(Context context) {//            if (NotificationManagerCompat.from(context).areNotificationsEnabled()) {//                return new SystemToast(new Toast(context));
//            }return new ToastWithoutNotification(new Toast(context));}private static Toast makeNormalToast(Context context, CharSequence text, int duration) {@SuppressLint("ShowToast")Toast toast = Toast.makeText(context, "", duration);toast.setText(text);return toast;}}static class SystemToast extends AbsToast {SystemToast(Toast toast) {super(toast);if (Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1) {try {//noinspection JavaReflectionMemberAccessField mTNField = Toast.class.getDeclaredField("mTN");mTNField.setAccessible(true);Object mTN = mTNField.get(toast);Field mTNmHandlerField = mTNField.getType().getDeclaredField("mHandler");mTNmHandlerField.setAccessible(true);Handler tnHandler = (Handler) mTNmHandlerField.get(mTN);mTNmHandlerField.set(mTN, new SafeHandler(tnHandler));} catch (Exception ignored) { /**/ }}}@Overridepublic void show() {mToast.show();}@Overridepublic void cancel() {mToast.cancel();}static class SafeHandler extends Handler {private Handler impl;SafeHandler(Handler impl) {this.impl = impl;}@Overridepublic void handleMessage(Message msg) {impl.handleMessage(msg);}@Overridepublic void dispatchMessage(Message msg) {try {impl.dispatchMessage(msg);} catch (Exception e) {Log.e("ToastUtils", e.toString());}}}}static class ToastWithoutNotification extends AbsToast {private View mView;private WindowManager mWM;private WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();private static final OnActivityDestroyedListener LISTENER =new OnActivityDestroyedListener() {@Overridepublic void onActivityDestroyed(Activity activity) {if (iToast == null) return;activity.getWindow().getDecorView().setVisibility(View.GONE);iToast.cancel();}};ToastWithoutNotification(Toast toast) {super(toast);}@Overridepublic void show() {mView = mToast.getView();if (mView == null) return;final Context context = mToast.getView().getContext();if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N_MR1) {mWM = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);mParams.type = WindowManager.LayoutParams.TYPE_TOAST;} else {Context topActivityOrApp = MyApplication.getCurrentActivity();if (!(topActivityOrApp instanceof Activity)) {Log.e("ToastUtils", "Couldn't get top Activity.");return;}Activity topActivity = (Activity) topActivityOrApp;if (topActivity.isFinishing() || topActivity.isDestroyed()) {Log.e("ToastUtils", topActivity + " is useless");return;}mWM = topActivity.getWindowManager();mParams.type = WindowManager.LayoutParams.LAST_APPLICATION_WINDOW;addOnActivityDestroyedListener(topActivity, LISTENER);}mParams.height = WindowManager.LayoutParams.WRAP_CONTENT;mParams.width = WindowManager.LayoutParams.WRAP_CONTENT;mParams.format = PixelFormat.TRANSLUCENT;mParams.windowAnimations = android.R.style.Animation_Toast;mParams.setTitle("ToastWithoutNotification");mParams.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;mParams.packageName = MyApplication.getmContext().getPackageName();mParams.gravity = mToast.getGravity();if ((mParams.gravity & Gravity.HORIZONTAL_GRAVITY_MASK) == Gravity.FILL_HORIZONTAL) {mParams.horizontalWeight = 1.0f;}if ((mParams.gravity & Gravity.VERTICAL_GRAVITY_MASK) == Gravity.FILL_VERTICAL) {mParams.verticalWeight = 1.0f;}mParams.x = mToast.getXOffset();mParams.y = mToast.getYOffset();mParams.horizontalMargin = mToast.getHorizontalMargin();mParams.verticalMargin = mToast.getVerticalMargin();try {if (mWM != null) {mWM.addView(mView, mParams);}} catch (Exception ignored) { /**/ }runOnUiThreadDelayed(new Runnable() {@Overridepublic void run() {cancel();}}, mToast.getDuration() == Toast.LENGTH_SHORT ? 2000 : 3500);}@Overridepublic void cancel() {try {if (mWM != null) {mWM.removeViewImmediate(mView);}} catch (Exception ignored) { /**/ }mView = null;mWM = null;mToast = null;}}static abstract class AbsToast implements IToast {Toast mToast;AbsToast(Toast toast) {mToast = toast;}@Overridepublic void setView(View view) {mToast.setView(view);}@Overridepublic View getView() {return mToast.getView();}@Overridepublic void setDuration(int duration) {mToast.setDuration(duration);}@Overridepublic void setGravity(int gravity, int xOffset, int yOffset) {mToast.setGravity(gravity, xOffset, yOffset);}@Overridepublic void setText(int resId) {mToast.setText(resId);}@Overridepublic void setText(CharSequence s) {mToast.setText(s);}}interface IToast {void show();void cancel();void setView(View view);View getView();void setDuration(int duration);void setGravity(int gravity, int xOffset, int yOffset);void setText(@StringRes int resId);void setText(CharSequence s);}}

小米手机 Toast显示带应用名称问题解决方法相关推荐

  1. Android 小米手机Toast显示带应用名称问题解决方法

    解决方法有两个: 第一是: Toast.makeText()方法的第二个参数传null,然后mtoast.settext(text)重新设置一下. 第二是:自定义toast,ToastUtils类// ...

  2. 小米无线显示无法连接到服务器是怎么回事啊,小米手机无线显示怎么设置?设置无线显示的方法介绍...

    专注于IE浏览器,以及常用的浏览器经验分享的,下面的内容小编整理发出. 亲们或许不知道小米手机的无线显示怎么用?,那么今天小编就讲解哦,希望能够帮助到大家呢. 打开小米手机,进入设置界面,点击[更多连 ...

  3. 小米手机关闭自带服务器,小米手机耗电大?关闭这两个设置,小米手机能更省电!...

    原标题:小米手机耗电大?关闭这两个设置,小米手机能更省电! 小米手机耗电大.续航差是很多小米用户最头疼的事,明明刚充满的电,才玩了一会儿就去掉了一大半,真的很忧伤~ 那么怎么做才能让小米更省电,不那么 ...

  4. 小程序更换域名后发现图片显示不出来的问题解决方法

    问题描述:小程序更换域名后发现图片显示不出来的问题解决方法 试用范围:微信小程序 基础库 1.0.1 及以上版本 问题描述: 更换域名后发现图片显示不出来,同时微信公众平台配置了新域名,小程序中的ap ...

  5. 终端中显示git分支名称的方法

    终端中显示git分支名称的方法   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客,B站昵称为:亓官劼,地址为亓官劼 ...

  6. 物尽其用——小米手机2/2S合并分区刷机方法

    小米手机2/2S 升级MIUI 6后,分区空间不够用了有木有,装不了满屏的程序愉快的玩耍了有木有?没关系今天我是来给大家送福利的,按照我的方法操作,保证你的手机APP装的满满的一屏.两屏.三四屏,都不 ...

  7. miui系统小米手机应用双开默认登陆设置修改方法步骤

    描述:miui系统小米手机应用双开默认登陆设置修改方法步骤 步骤: 设置->应用管理->应用双开->点击应用->选择登录和分享->选择每次询问

  8. android拍照图片如何存储空间不足,手机照相显示内存不足怎么办 解决方法【详解】...

    用手机来拍照,这已经成为手机不可或缺的一个重要功能.手机拍照时,显示内存不足,该怎么办?关键时刻怎么可以没有内存! 下面一起来学习手机照相显示内存不足的解决方法. 1.当去旅游或是出差的时候,原本打算 ...

  9. vue-seamless-scroll在小米手机上显示不正常 显示出两行的问题

    起因是 本来设置vue-seamless-scroll进行一行的向左循环滚动 但是在小米手机上他却显示了两行而且 并不是无缝滚动 网上查了好长时间没得到解决办法 只好自己分析 首先是vue-seaml ...

  10. 小米9开发版自带root吗_小米手机MIUI9开发版开启ROOT权限方法,这些经验不可多得...

    小米MIUI9系统如何获取ROOT权限呢?相比其它品牌手机系统而言,MIUI9开发版系统自带ROOT权限管理工具,如果想获取MIUI系统ROOT权限,只需要根据下面的方法进行操作即可. 操作方法 01 ...

最新文章

  1. python实现全角和半角互相转换
  2. 【linux】Valgrind工具集详解(十二):DHAT:动态堆分析器
  3. 单片机 c语言 按键长按短按,求助:单片机一键长按与短按按键实现的c程序有问题...
  4. 根据ABAP BAdI definition名称找到SPRO里配置路径的办法
  5. python达梦数据库_python 操作达 梦数据库
  6. Monkey稳定性测试初探(二)
  7. 程序员需要避免的 10 个坏习惯
  8. mysql哪些字段适合索引_(转)Mysql哪些字段适合建立索引
  9. KVM 介绍(6):Nova 通过 libvirt 管理 QEMU/KVM 虚机 [Nova Libvirt QEMU/KVM Domain]
  10. 多个pdf合并成一个pdf_手机里多个PDF合并成一个PDF的免费方法
  11. python之gunicorn的配置
  12. MpscGrowableArrayQueue分析
  13. zul组件、zhtml组件、native组件的区别
  14. winpe装双系统linux_自制WINPE+MAC安装U盘及双系统存储U盘(增加多系统安装)
  15. 有了这些组件和模板,天下没有难做的移动端驾驶舱
  16. 三国杀全武将台词大全(标准+神话再临+一将成名12345+SP+国战+其他+皮肤)
  17. 教你怎么使用python批量下载图片
  18. 我的人生哲学(三十六岁版)
  19. Vue vben admin - 新鲜出炉的高颜值管理后台UI框架,基于 Vue3 和 Ant Design Vue
  20. 车载以太网工具链,你了解多少?

热门文章

  1. 【Unity2D】制作游戏主菜单MainMenu
  2. 儿童讲堂 - 量词的解释
  3. 每年都要调两次时间,美国人已经烦透了
  4. 信创项目基础软件都包括哪些?你要了解
  5. 李宏毅2020机器学习笔记1——CXK
  6. FreeSurfer和FSL的安装和使用(脑部图像去除头骨+对图像和label同时进行仿射对齐)教程
  7. 统计 | 几种特殊随机变量的分布
  8. Linux Debian11 Podman容器常用命令
  9. php设置图片文字布局,Word如何排版图片和文字
  10. OpenCV55:高动态范围成像|High Dynamic Range (HDR)