android 自定义Toast显示风格

1.创建一个自己想要显示Toast风格的XML如下代码(toast_xml.xml):

[html] view plaincopyprint?

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="horizontal"
  6. android:padding="8dp"
  7. android:background="#DAAA"
  8. android:id="@+id/toast_layout_root">
  9. <ImageView
  10. android:layout_width="wrap_content"
  11. android:layout_height="wrap_content"
  12. android:layout_marginRight="8dp"
  13. android:id="@+id/iv"
  14. />
  15. <TextView android:id="@+id/text"
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:textColor="#FFF"
  19. />
  20. </LinearLayout>

2.封装一个Toast共同类,当然也可以直接在activity运用,那么我是用共通类,当然只是简单的封装:

[html] view plaincopyprint?

  1. import com.sbr.activity.R;
  2. import android.annotation.SuppressLint;
  3. import android.content.Context;
  4. import android.view.Gravity;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.ImageView;
  9. import android.widget.TextView;
  10. import android.widget.Toast;
  11. @SuppressLint("ResourceAsColor")
  12. public class ToastCommom {
  13. private static ToastCommom toastCommom;
  14. private Toast toast;
  15. private ToastCommom(){
  16. }
  17. public static ToastCommom createToastConfig(){
  18. if (toastCommom==null) {
  19. toastCommom = new ToastCommom();
  20. }
  21. return toastCommom;
  22. }
  23. /**
  24. * 显示Toast
  25. * @param context
  26. * @param root
  27. * @param tvString
  28. */
  29. public void ToastShow(Context context,ViewGroup root,String tvString){
  30. View layout = LayoutInflater.from(context).inflate(R.layout.toast_xml,root);
  31. TextView text = (TextView) layout.findViewById(R.id.text);
  32. ImageView mImageView = (ImageView) layout.findViewById(R.id.iv);
  33. mImageView.setBackgroundResource(R.drawable.ic_launcher);
  34. text.setText(tvString);
  35. text.setTextColor(R.color.aqua);
  36. toast = new Toast(context);
  37. toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
  38. toast.setDuration(Toast.LENGTH_LONG);
  39. toast.setView(layout);
  40. toast.show();
  41. }
  42. }

3.创建一个Activity去引用该共通类:

[html] view plaincopyprint?

  1. import com.sbr.commonView.ToastCommom;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.view.ViewGroup;
  7. import android.widget.Button;
  8. public class ToastActivity extends Activity {
  9. private Button mbutton;
  10. private ToastCommom toastCommom;
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState) {
  13. // TODO Auto-generated method stub
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.toast_buton);
  16. toastCommom = ToastCommom.createToastConfig();
  17. mbutton = (Button) findViewById(R.id.btn);
  18. mbutton.setOnClickListener(new OnClickListener() {
  19. @Override
  20. public void onClick(View v) {
  21. // TODO Auto-generated method stub
  22. toastCommom.ToastShow(ToastActivity.this, (ViewGroup)findViewById(R.id.toast_layout_root), "你好");
  23. }
  24. });
  25. }
  26. }

好了,一个简单的自定义toast显示就完成了;当然万变不离其宗,都是类似的做法。

时间: 2024-10-12 20:44:34

android 自定义Toast显示风格的相关文章

Android自定义Toast的时长、位置、及显示的View

Android自定义Toast 首先是自定义时长: 说是这么说,但是android自带的两个时长 LENGTH_SHORT (2秒) 和LENGTH_LONG (3.5秒)基本已经够用了,一般也没有特地去设置几十秒的Toast吧,这样的话,还不如直接弄一个Dialog来的直接. 我们先看看如何让Toast在3.5秒内自定义显示长度: public static void showShort(Context context, String msg, int duration) { final To

Android 自定义 ListView 显示网络歌曲列表

本文内容 环境 项目结构 演示自定义 ListView 显示网络歌曲列表 参考资料 本文最开始看的一个国人的文章,没有源代码,根据文中提供的源代码,自己新建的项目(最可气的是,没有图标图片资源,只能自己乱编),但程序不是很稳定,有时能显示出列表中的缩略图,有时显示不出来,还在主线程访问了网络.后看文章评论,作者给出英文原文链接,本来想这下没事了吧,结果下载源代码运行后,还是有问题~仔细看英文原文,原来他也是根据 Github 上一个项目的基础上搞的,只是添加了式样,以及显示完整的歌曲列表,包括歌

android 自定义toast width height 背景图片

Android 自定义toast 宽高大小 背景图片 RelativeLayout layout = (RelativeLayout) getLayoutInflater().inflate(R.layout.layout_custom_toast,null); ((TextView) layout.findViewById(R.id.tvCheckoutWay)).setText("11111"); ((TextView) layout.findViewById(R.id.tvPer

Android自定义Toast

场景 Toast作为一个基本的界面提醒方式,使用还是比较广,但是介于默认样式比较难看外加有些特殊要求,比如需要在Toast的界面上做事件处理啥的,所以衍生出了Toast的自定义样式 默认样式 1 Toast tempToast = Toast.makeText(getApplicationContext(), "默认的Toast样式", 2 Toast.LENGTH_LONG); 3 //可以设置位置 4 //tempToast.setGravity(Gravity.BOTTOM |

android自定义Toast之-弹出消息

实现方法: 1.new 一个Toast实例toast. 2.自定义一个显示的View实例view . 3.把toast.setView(view),toast.setDuration(Toast.LENGTH_LONG)设置显消息示时间 4.避免操作有误一直重复弹出消息处理,定义一个Toast的全局变量避免重复实例化进行控制 下面是代码 package com.android.hexiang.otptoken; import android.view.Gravity; import androi

[Android]自定义Toast

Toast,在Android开发中常常会遇到,但是,我们总是会遇到一个问题,那便是当我们使用按钮监听弹出Toast的时候,假如不断点击按钮,将会不断地弹出Toast,而这一篇文章便是为了解决这个问题而编写的. 同时,为了节约app资源和方便使用,便使用单例模式来实现自定义Toast. (1)建立MyToast类,并且定义以下成员变量,以及部分更改器: private static final Object SYNC_LOCK = new Object(); private static Toas

朝花夕拾-android 自定义toast

在一个只有你而且还未知的世界中,不去探索未知,死守一处,你到底在守什么呢? 作为一个目前的android程序员,可能过去写着delphi的代码,可能未来回去搭建服务器.不管怎样,你现在是一名安卓程序员,是该告别eclipse的时候了. 今天早上开机,android studio 都更新到0.9.9了,大家都说他的强大.可能用惯了大刀长矛的武林高手并不习惯使用火枪洋炮,但是还是得用吧. 所以,自定义toast的Demo 源码位置:http://git.oschina.net/zj2012zy/An

android中Toast显示时间自定义使用

Toast是安卓作为提示是经常需要用到的,然而有时一大堆Toast的弹出 让整个程序看着不够和谐.官方提供的也仅仅只有两种显示时间, Toast.LENGTH_LONG显示时间为3.5秒.Toast.LENGTH_SHORT显示 时间为2秒,下面给出自己定义的时间代码,见代码 /** * 根据自己的时间去定义一个Toast 输入时间为毫秒 * * @param c * @param info * @param time */ public static void setToatBytTime(C

android自定义GifView显示gif动画

gif动画在web开发中使用的非常的多,利用gif,许多动画不必再用程序编写,现在有非常多的App已经使用到了gif动画,可是android sdk并没有为我们提供gif这种View,所以我们只能自定义一个View,去实现gif效果. android虽然没有为我们提供现成的GifView,但是为我们提供了Movie类,这个类就是用来实现GifView的关键类.它主要有两个最重要的方法,一个是根据动画播放时间设置当前要现显示的帧,二是将当前要显示的帧绘制到画布中.下面看一下效果图: 点击暂停按钮还