鸿蒙系统下自定义Toast的实现
头像 Tiechui.Wang 2021-03-26 10:00:00    发布
3480 浏览 29 点赞 20 收藏

本文介绍Homary OS下基于ToastDialog自定义Toast实现的方法。

ToastDialog类的相关方法

https://developer.harmonyos.com/cn/docs/documentation/doc-references/toastdialog-0000001054440045

Toast的简单实现


public static void showSimpleToast(Context context, String toastStr){
    new ToastDialog(context).setDuration(500).setText(toastStr).setAlignment(LayoutAlignment.CENTER).show();
}

这种方法直接利用ToastDialog类的setText方法,默认背景色为白色,字体为黑色,显示效果不是很好


自定义Toast的实现


public static void showCustomText(Context context, String toastStr){
    Text textComponent = new Text(context);
    textComponent.setText(toastStr);
    int padding = DeviceUtils.vpToPx(context, 10);
    //设置间距为10vp
    textComponent.setPadding(padding, padding, padding, padding);
    textComponent.setTextColor(Color.WHITE);
    textComponent.setTextAlignment(TextAlignment.CENTER);
    textComponent.setTextSize(DeviceUtils.vpToPx(context, 20));
    ShapeElement shapeElement = new ShapeElement();
    shapeElement.setShape(ShapeElement.RECTANGLE);
    //设置背景半透明
    shapeElement.setRgbColor(RgbColor.fromArgbInt(Color.argb(127, 0, 0, 0)));
    textComponent.setBackground(shapeElement);
    //设置文字允许多行
    textComponent.setMultipleLine(true);

    DirectionalLayout.LayoutConfig layoutConfig = new DirectionalLayout.LayoutConfig();
    layoutConfig.width = ComponentContainer.LayoutConfig.MATCH_CONTENT;
    layoutConfig.height = ComponentContainer.LayoutConfig.MATCH_CONTENT;
    layoutConfig.alignment = LayoutAlignment.CENTER;
    textComponent.setLayoutConfig(layoutConfig);

    ToastDialog toastDialog =  new ToastDialog(context).setDuration(500).setComponent(textComponent).setAlignment(LayoutAlignment.CENTER);
    //设置弹框背景透明
    toastDialog.setTransparent(true);
    toastDialog.show();
}

这种方法直接利用ToastDialog类的setComponent方法,自定义视图,能够达到较好的UI效果:

鸿蒙系统下自定义Toast的实现-鸿蒙开发者社区

至此,自定义Toast已经实现!


©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
地址:北京市朝阳区北三环东路三元桥曙光西里甲1号第三置业A座1508室 商务内容合作QQ:2291221 电话:13391790444或(010)62178877
版权所有:电脑商情信息服务集团 北京赢邦策略咨询有限责任公司
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,我司致力于保护作者版权,如有侵权,请与我司联系删除
京ICP备:2022009079号-2
京公网安备:11010502051901号
ICP证:京B2-20230255