【Android代码片段之六】Toast工具类(实现带图片的Toast消息提示)
2014-05-21 16:05
681 查看
[b]转载请注明出处,原文网址:/article/1656883.html 作者:张燕广[/b]
实现的Toast工具类ToastUtil封装了普通文本消息提示和带图片的消息提示,实际开发中可根据自己的需要完善ToastUtil类,比如完善Toast消息位置相关设置等。
ToastUtil类代码如下:
[java] view plaincopy
package com.zyg.demo.toast;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class ToastUtil {
private static Toast toast = null;
public static int LENGTH_LONG = Toast.LENGTH_LONG;
private static int LENGTH_SHORT = Toast.LENGTH_SHORT;
/**
* 普通文本消息提示
* @param context
* @param text
* @param duration
*/
public static void TextToast(Context context,CharSequence text,int duration){
//创建一个Toast提示消息
toast = Toast.makeText(context, text, duration);
//设置Toast提示消息在屏幕上的位置
toast.setGravity(Gravity.CENTER, 0, 0);
//显示消息
toast.show();
}
/**
* 带图片消息提示
* @param context
* @param ImageResourceId
* @param text
* @param duration
*/
public static void ImageToast(Context context,int ImageResourceId,CharSequence text,int duration){
//创建一个Toast提示消息
toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
//设置Toast提示消息在屏幕上的位置
toast.setGravity(Gravity.CENTER, 0, 0);
//获取Toast提示消息里原有的View
View toastView = toast.getView();
//创建一个ImageView
ImageView img = new ImageView(context);
img.setImageResource(ImageResourceId);
//创建一个LineLayout容器
LinearLayout ll = new LinearLayout(context);
//向LinearLayout中添加ImageView和Toast原有的View
ll.addView(img);
ll.addView(toastView);
//将LineLayout容器设置为toast的View
toast.setView(ll);
//显示消息
toast.show();
}
}
ToastUtil工具类应用示例代码如下:
[java] view plaincopy
package com.zyg.demo.toast;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.zyg.demo.toast.util.ToastUtil;
public class ToastActivity extends Activity implements OnClickListener{
private Button btnTxtToast = null;
private Button btnImgToast = null;
private Toast toast = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initUI();
}
private void initUI(){
btnTxtToast = (Button)findViewById(R.id.txttoast);
btnTxtToast.setOnClickListener(this);
btnImgToast = (Button)findViewById(R.id.imgtoast);
btnImgToast.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v==btnTxtToast){
String text = "文本消息提示";
int duration = ToastUtil.LENGTH_LONG;
ToastUtil.TextToast(this, text, ToastUtil.LENGTH_LONG);
}else if(v==btnImgToast){
String text = "正在搜索";
int ImageResourceId = R.drawable.search;
int duration = ToastUtil.LENGTH_LONG;
ToastUtil.ImageToast(this, ImageResourceId, text, duration);
}
}
}
运行效果如下:
实现的Toast工具类ToastUtil封装了普通文本消息提示和带图片的消息提示,实际开发中可根据自己的需要完善ToastUtil类,比如完善Toast消息位置相关设置等。
ToastUtil类代码如下:
[java] view plaincopy
package com.zyg.demo.toast;
import android.content.Context;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class ToastUtil {
private static Toast toast = null;
public static int LENGTH_LONG = Toast.LENGTH_LONG;
private static int LENGTH_SHORT = Toast.LENGTH_SHORT;
/**
* 普通文本消息提示
* @param context
* @param text
* @param duration
*/
public static void TextToast(Context context,CharSequence text,int duration){
//创建一个Toast提示消息
toast = Toast.makeText(context, text, duration);
//设置Toast提示消息在屏幕上的位置
toast.setGravity(Gravity.CENTER, 0, 0);
//显示消息
toast.show();
}
/**
* 带图片消息提示
* @param context
* @param ImageResourceId
* @param text
* @param duration
*/
public static void ImageToast(Context context,int ImageResourceId,CharSequence text,int duration){
//创建一个Toast提示消息
toast = Toast.makeText(context, text, Toast.LENGTH_LONG);
//设置Toast提示消息在屏幕上的位置
toast.setGravity(Gravity.CENTER, 0, 0);
//获取Toast提示消息里原有的View
View toastView = toast.getView();
//创建一个ImageView
ImageView img = new ImageView(context);
img.setImageResource(ImageResourceId);
//创建一个LineLayout容器
LinearLayout ll = new LinearLayout(context);
//向LinearLayout中添加ImageView和Toast原有的View
ll.addView(img);
ll.addView(toastView);
//将LineLayout容器设置为toast的View
toast.setView(ll);
//显示消息
toast.show();
}
}
ToastUtil工具类应用示例代码如下:
[java] view plaincopy
package com.zyg.demo.toast;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.zyg.demo.toast.util.ToastUtil;
public class ToastActivity extends Activity implements OnClickListener{
private Button btnTxtToast = null;
private Button btnImgToast = null;
private Toast toast = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initUI();
}
private void initUI(){
btnTxtToast = (Button)findViewById(R.id.txttoast);
btnTxtToast.setOnClickListener(this);
btnImgToast = (Button)findViewById(R.id.imgtoast);
btnImgToast.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if(v==btnTxtToast){
String text = "文本消息提示";
int duration = ToastUtil.LENGTH_LONG;
ToastUtil.TextToast(this, text, ToastUtil.LENGTH_LONG);
}else if(v==btnImgToast){
String text = "正在搜索";
int ImageResourceId = R.drawable.search;
int duration = ToastUtil.LENGTH_LONG;
ToastUtil.ImageToast(this, ImageResourceId, text, duration);
}
}
}
运行效果如下:
相关文章推荐
- 【Android代码片段之六】Toast工具类(实现带图片的Toast消息提示)
- 【Android代码片段之六】Toast工具类(实现带图片的Toast消息提示)
- Android开发之Toast工具类(实现带图片的Toast消息提示)
- 提示代码Android之Toast简单实现不循环提示
- js实现动态消息提示框(模仿android系统中toast的效果)
- Android工具HierarchyViewer 代码导读(1) -- 功能实现演示
- android开发之蜂鸣提示音和震动提示的实现原理与参考代码
- android实现图片拖拽效果(参考了一下别人的代码)
- 用python脚本实现的android代码管理工具rrdt
- Android之Toast简单实现不循环提示
- [转]Android Toast简易消息提示框的使用
- Android工具HierarchyViewer 代码导读(1) -- 功能实现演示
- android 常用UI使用工具代码片段
- 【Android代码片段之一】图片处理Bitmap相关类型转换
- 自定义控件,Android实现图片加载进度提示
- 自己写代码实现android的图片裁剪。
- android的消息Toast,提示对话框,menu,Activity替换数据传递。
- Android的消息提示:Toast与Notification的使用
- Android代码实现图片圆角功能---------------
- Android实现微信底部的带消息提示数量