Android工具类Toast自定义图片和文字

有时候我们做Android开发,需要弹一个用户提示,但是有时候设计的提示弹窗是带有图片的,我们每次写一个特别麻烦。所以我特地封装了一个工具类,在需要弹窗的地方调用对应的方法即可,根据需要可以传文字和图片资源id,方便自定义Toast弹窗提示。

下面是效果图

自定义工具类代码

/**
 * Created by zzf on 2018/7/7.
 * 一个自定义的吐司工具类,可以修改任意布局
 */

public class ToastUtils {

  private static Context mContext = OcreanSonicApplication.getContext();

  public static void showToast(String toast) {
    Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
  }

  /**
   * 带图片的吐司提示
   * @param text
   */
  public static void showCustomImgToast(String text) {
    LayoutInflater inflater = LayoutInflater.from(mContext);
    View view = inflater.inflate(R.layout.toast_view, null);
    ImageView imageView = (ImageView) view.findViewById(R.id.toast_image);
    imageView.setBackgroundResource(R.mipmap.pd_ic_finish);
    TextView t = (TextView) view.findViewById(R.id.toast_text);
    t.setText(text);
    Toast toast = null;
    if (toast != null) {
      toast.cancel();
    }
    toast = new Toast(mContext);
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(view);
    toast.show();
  }

  /**
   * 带图片的吐司提示
   * 通过参数传递,可是设置吐司的图片和文字内容
   * @param text
   */
  public static void showCustomImgToast(String text,int imgResId) {
    LayoutInflater inflater = LayoutInflater.from(mContext);
    View view = inflater.inflate(R.layout.toast_view, null);
    ImageView imageView = (ImageView) view.findViewById(R.id.toast_image);
    imageView.setBackgroundResource(R.mipmap.pd_ic_finish);
    TextView t = (TextView) view.findViewById(R.id.toast_text);
    t.setText(text);
    Toast toast = null;
    if (toast != null) {
      toast.cancel();
    }
    toast = new Toast(mContext);
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(view);
    toast.show();
  }

  /**
   * 不带图片的吐司提示
   * @param text
   */
  public static void showCustomToast(String text) {
    LayoutInflater inflater = LayoutInflater.from(mContext);
    View view = inflater.inflate(R.layout.toast_view, null);
    ImageView imageView = (ImageView) view.findViewById(R.id.toast_image);
    imageView.setVisibility(View.GONE);
    TextView t = (TextView) view.findViewById(R.id.toast_text);
    t.setText(text);
    Toast toast = null;
    if (toast != null) {
      toast.cancel();
    }
    toast = new Toast(mContext);
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(view);
    toast.show();
  }

  /**
   * 带图片的吐司,设置吐司弹出的位置为屏幕中心
   * @param text
   */
  public static void showCustomToastCenter(String text) {
    showCustomToastCenter(text, R.mipmap.pd_ic_finish);
  }

  /**
   * 带图片的吐司,设置吐司弹出的位置为屏幕中心
   * 通过参数传递,可是设置吐司的图片和文字内容
   * @param text
   */
  public static void showCustomToastCenter(String text, int imgResId) {
    LayoutInflater inflater = LayoutInflater.from(mContext);
    View view = inflater.inflate(R.layout.toast_view, null);
    ImageView imageView = (ImageView) view.findViewById(R.id.toast_image);
    imageView.setBackgroundResource(imgResId);
    TextView t = (TextView) view.findViewById(R.id.toast_text);
    t.setText(text);
    Toast toast = null;
    if (toast != null) {
      toast.cancel();
    }
    toast = new Toast(mContext);
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(view);
    toast.setGravity(Gravity.CENTER, 0, 0);
    toast.show();
  }
}

在自定义Toast中引用xml布局,用来放置图片和文字,设置id,可以任意在Java代码中设置

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:layout_width="match_parent"
       android:layout_height="match_parent"

       android:orientation="vertical">

  <!-- android:minHeight="80dp"-->
  <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:background="@drawable/shape_toast"
    android:minWidth="120dp"
    android:gravity="center"

    android:orientation="vertical"
    android:padding="5dp">
    <!--android:background="@drawable/toast_bg"-->
    <ImageView
      android:id="@+id/toast_image"
      android:layout_width="30dp"
      android:layout_height="30dp"
      android:layout_gravity="center"
      android:layout_margin="2dp"
      android:background="@mipmap/pd_ic_finish"/>

    <TextView
      android:id="@+id/toast_text"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_margin="2dp"
      android:layout_gravity="center"
      android:text="保存成功"
      android:textColor="#ffffff"
      android:textSize="15dp"/>
  </LinearLayout>

</LinearLayout>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android开发中4个常用的工具类【Toast、SharedPreferences、网络及屏幕操作】

    本文实例讲述了Android开发中4个常用的工具类.分享给大家供大家参考,具体如下: 1.土司工具类(Toast管理) /** * Toast统一管理类 * * @Project App_ZXing * @Package com.android.scan * @author chenlin * @version 1.0 * @Date 2013年7月6日 * @Note TODO */ public class ToastUtil { private ToastUtil() { /* canno

  • Android实用的Toast工具类封装

    大家好,Toast这个提示框大家都晓得,显示一段时间后自动消失,不能获得焦点.但是在使用中有些问题: 1)需要弹出一个新的Toast时,上一个Toast还没有显示完 2)可能重复弹出相同的信息 3)Toast具体有哪些用法不是很熟悉,用到时导出去找 4)app退出去了,Toast还在弹 等等一系列问题 下面封装了一个工具类,帮助大家管理Toast,基本上可以满足常用的需求,如果还满足不了,那就自定义了,呵呵~ import android.content.Context; import andr

  • android开发教程之实现toast工具类

    Android中不用再每次都写烦人的Toast了,直接调用这个封装好的类,就可以使用了! 复制代码 代码如下: package com.zhanggeng.contact.tools; /** * Toasttool can make you  use Toast more easy ;  *  * @author ZHANGGeng * @version v1.0.1 * @since JDK5.0 * */import android.content.Context;import andro

  • Android工具类Toast自定义图片和文字

    有时候我们做Android开发,需要弹一个用户提示,但是有时候设计的提示弹窗是带有图片的,我们每次写一个特别麻烦.所以我特地封装了一个工具类,在需要弹窗的地方调用对应的方法即可,根据需要可以传文字和图片资源id,方便自定义Toast弹窗提示. 下面是效果图 自定义工具类代码 /** * Created by zzf on 2018/7/7. * 一个自定义的吐司工具类,可以修改任意布局 */ public class ToastUtils { private static Context mCo

  • PHP水印类,支持添加图片、文字、填充颜色区域的实现

    *自己整理的一个水印类* 支持添加图片.文字.填充颜色区域 <?php /** * 图片加水印类,支持文字水印.透明度设置.自定义水印位置等. * 使用示例: * $obj = new WaterMask($imgFileName); //实例化对象 * $obj->$waterType = 1; //类型:0为文字水印.1为图片水印 * $obj->$transparent = 45; //水印透明度 * $obj->$waterStr = 'icp.niufee.com'; /

  • Android使用Intent.ACTION_SEND分享图片和文字内容的示例代码

    本文讲述了Android版Intent.ACTION_SEND分享图片和文字内容.分享给大家供大家参考,具体如下: 编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识.前端.后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过! 下面的方法只能实现普通的文字分享: private void shareContent() { Intent share = new Intent(android.content.Intent

  • Android编程实现Toast自定义布局简单示例

    本文实例讲述了Android编程实现Toast自定义布局的方法.分享给大家供大家参考,具体如下: 不知道各位客官是不是觉得系统的toast的信息很难看呢,默认的但黑色背景,毫无色彩. 那么接下来我就教大家用最简单的方式自定义toast布局吧. 首先加载一个自定义的布局 LayoutInflater inflater = context.getLayoutInflater(); View view=inflater.inflate(R.layout.toast_info, null); 然后找到里

  • Android工具类ImgUtil选择相机和系统相册

    本文实例为大家分享了Android选择相机和系统相册的具体代码,供大家参考,具体内容如下 说明: Android选择相机和系统相册 代码: 1.打开系统相机和系统相册工具类 package com.gxjl.pe.gxjlpesdk.util; import android.Manifest; import android.app.Activity; import android.app.ActivityManager; import android.app.AlertDialog; impor

  • Android自定义实现图片加文字功能

    Android自定义实现图片加文字功能 分四步来写: 1,组合控件的xml; 2,自定义组合控件的属性; 3,自定义继承组合布局的class类,实现带两参数的构造器; 4,在xml中展示组合控件. 具体实现过程: 一.组合控件的xml 我接触的有两种方式,一种是普通的Activity的xml:一种是父节点为merge的xml.我项目中用的是第一种,但个人感觉第二种好,因为第一种多了相对或者绝对布局层. 我写的 custom_pictext.xml <?xml version="1.0&qu

  • Android系统图片分享工具类

    简介 记录一个利用系统分享功能进行图片分享的工具类(代码是用Kotlin写的,都是比较简单的语法,部分可能需要自定义的地方都已经标出).调用方式比较简单: Util.startShareImage(this) //this为当前的Activity实例 权限 记得添加文件操作权限, 另外需要注意6.0版本以上的权限管理 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <

  • Android自定义有限制区域的图例角度自识别涂鸦工具类完结篇

    目录 引言 总结 引言 上文Android:实现一个自定义有限制区域的图例(角度自识别)涂鸦工具类(中)中我们已经实现了在复杂的异形区域中涂鸦,最后生成图片保存的功能.这篇我们将继续升华,在此基础上实现涂鸦图片方向和手势方向保持一致的功能. 首先涂鸦如果要使用自定义的图片进行涂色,我们要如何实现呢?其实在Paint中提供了一个着色器属性,我们可以根据需求设置对应的着色器. //设置着色器 public Shader setShader(Shader shader) { // If mShader

随机推荐