首页 > 其他分享 >Android中自定义Toast文字大小

Android中自定义Toast文字大小

时间:2024-06-12 17:57:19浏览次数:24  
标签:Toast toast textSize layout 自定义 文字大小 context message

在Android开发中,Toast是一种轻量级的提示框,用于在屏幕上显示临时消息。一般情况下,Toast显示的文字大小是固定的,无法直接改变。但是,我们可以通过一些方法来实现在Toast中显示不同大小的文字。

方法一: 使用自定义布局

创建custom_toast.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="wrap_content"

    android:orientation="vertical"
    android:padding="16dp">
<!--    android:background="@drawable/toast_background"-->
    <TextView
        android:id="@+id/text_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000000"
        android:textSize="18sp" />

</LinearLayout>

  java代码:

public static void showToastWithCustomSize(Context context, String message, int textSize) {
        // 加载自定义Toast布局
        LayoutInflater inflater = LayoutInflater.from(context);
        View layout = inflater.inflate(com.xzh.cssmartandroid.R.layout.custom_toast, null);

        // 设置TextView的字体大小
        TextView textView = layout.findViewById(com.xzh.cssmartandroid.R.id.text_view);
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize);
        textView.setText(message);

        // 创建并显示Toast
        Toast toast = new Toast(context);
        toast.setGravity(Gravity.BOTTOM, 0, 0);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(layout);
        toast.show();
    }

  方法二:使用SpannableString

 public static void showToast(Context context, String message, int textSize){
        SpannableString spannableString = new SpannableString(message);
        spannableString.setSpan(new AbsoluteSizeSpan(textSize,true),0,spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
        Toast.makeText(context,spannableString,Toast.LENGTH_SHORT).show();
    }

  以上两种方法就可以实现改变Toast文字大小了

封装

/**
 * 自定义Toast文字大小
 */
public class ToastUtils {
    /**
     * 方法1
     * @param context
     * @param message
     * @param textSize
     */
    public static void showToastWithCustomSize(Context context, String message, int textSize) {
        // 加载自定义Toast布局
        LayoutInflater inflater = LayoutInflater.from(context);
        View layout = inflater.inflate(com.xzh.cssmartandroid.R.layout.custom_toast, null);

        // 设置TextView的字体大小
        TextView textView = layout.findViewById(com.xzh.cssmartandroid.R.id.text_view);
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, textSize);
        textView.setText(message);

        // 创建并显示Toast
        Toast toast = new Toast(context);
        toast.setGravity(Gravity.BOTTOM, 0, 0);
        toast.setDuration(Toast.LENGTH_SHORT);
        toast.setView(layout);
        toast.show();
    }

    /**
     * 方法2
     * @param context
     * @param message
     * @param textSize
     */
    public static void showToast(Context context, String message, int textSize){
        SpannableString spannableString = new SpannableString(message);
        spannableString.setSpan(new AbsoluteSizeSpan(textSize,true),0,spannableString.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
        Toast.makeText(context,spannableString,Toast.LENGTH_SHORT).show();
    }
}

 

标签:Toast,toast,textSize,layout,自定义,文字大小,context,message
From: https://www.cnblogs.com/changyiqiang/p/18244416

相关文章

  • uniapp vue3 实现自定义Switch效果
    <template><viewclass="container"@click="toggleSwitch"><label:class="isOn?'switch-checked':'switch-nochecked'"><viewclass="open">{{activ......
  • 下载使用nginx发布html自定义页面
    在浏览器搜索nginx.org,然后点击download,接着点击 stableandmainline选择自己所使用系统对应的信息后点击(我用的是CentOS,所以需要点击RHELandderivatives)vim/etc/yum.repos.d/nginx.repo[nginx-stable]name=nginxstablerepobaseurl=http://nginx.org/packages/ce......
  • 一文教你如何手写一个mybatis自定义框架
     本文主要介绍原始jdbc操作有哪些弊端等方面说明持久层框架出现的原因,另一方面介绍如何自己仿写一个mybatis框架。学习完本文相信你对日常使用的mybatis框架有更深的理解!简介说到持久层框架,我们很快能想到hibernate、mybatis。Hibernate是全自动的持久层框架,而mybatis则是半......
  • electron + vue3 自定义窗口:移动,缩放,置顶
    electronmain.jsconst{BrowserWindow,ipcMain}=require('electron');constpath=require("path")constCustomWindow=require('./CustomWindow')constwin=newBrowserWindow({frame:false,transparent:true,......
  • 利用自定义标签,实现select下拉列表默认选中
    //创建块函数方法,用于替换文本中的值functionsmarty_block_get_cates($params,$content,&$_sm,&$repeat){if(!$repeat){$ci=&get_instance();$cates=$ci->db->get('category')->result_array();$cates=get_dat......
  • python绘制词云图最全教程,查看文章关键词,自定义词云图形状等,看完就会
    ......
  • VsCode中snippets --- vue自定义代码片段
    vue自定义代码片段Vue2代码片段1、点击文件→首选项→选择配置用户代码片段2、在弹出这个窗口中选择新建全局代码片段文件3、选择后在此处输入文件名后按‘Enter’键确定4、点击确定后会生成以下文件5、替换成以下vue2代码片段6、使用代码片段Vue3代码片段使用defineC......
  • 苹果iOS 18发布:新增锁屏自定义和应用锁
    今天凌晨1点,iOS18在苹果WWDC24上正式发布。全新的iOS18允许用户自由定义App排列,可以自由选择App颜色主题,并且iOS18升级支持锁屏状态自定义功能,还支持单个App的应用锁,保护用户隐私。与此同时,iOS18对控制中心也进行了升级调整,全新的控制中心更具有扩展性,支持第三方应用控制按......
  • SpringSecurity如何自定义用户认证逻辑?
    在SpringSecurity中自定义用户认证逻辑通常涉及到实现你自己的UserDetailsService或使用自定义的AuthenticationProvider。下面是通过这两种方式自定义用户认证逻辑的基本演示:使用UserDetailsService自定义UserDetailsService是SpringSecurity用于从数据库、L......
  • 自定义注解获取属性对应枚举的翻译值
    平时在开发的时候难免会遇到枚举来翻译类,于是写一个自定义注解来在开发的时候自动翻译枚举的值相关代码如下:@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documented@JacksonAnnotationsInsidepublic@interfaceEnumShow{/***要转换......