您的位置:首页 > 移动开发 > Android开发

【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);

}

}

}

运行效果如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: