展会信息港展会大全

Android中实现带声音提示的Toast (自定义扩展Toast)
来源:互联网   发布日期:2015-10-03 11:20:08   浏览:2353次  

导读:今天看到一个应用弹出的Toast的同时还 蹦擦个声音 貌似还不错。我说你别得瑟了,哥也搞个Toast也出来冒个声 也来得瑟下。这不,代码奉上:[java] view plaincopyp...

今天看到一个应用弹出的Toast的同时还 蹦擦个声音 貌似还不错。我说你别得瑟了,哥也搞个Toast也出来冒个声 也来得瑟下。

这不,代码奉上:

[java] view plaincopyprint?<SPAN style="FONT-SIZE: 18px"><STRONG>package weibo.lixiaodaoaaa.view;

import weibo.lixiaodaoaaa.ui.R;

import android.content.Context;

import android.media.MediaPlayer;

import android.util.DisplayMetrics;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;

/**

* 带声音提示的Toast自定义 Toast控件

*

* @author http://weibo.com/lixiaodaoaaa http://t.qq.com/lixiaodaoaaa

* @version 0.1

* @created 2013-4-23

*/

public class MyToast extends Toast

{

private MediaPlayer mPlayer;

private boolean isSound;

public MyToast(Context context)

{

this(context, false);

}

// isSound 表示是否播放音乐;;;;

public MyToast(Context context, boolean isSound)

{

super(context);

this.isSound = isSound;

mPlayer = MediaPlayer.create(context, R.raw.allsuccess);

mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()

{

@Override

public void onCompletion(MediaPlayer mp)

{

mp.release();// 释放资源。让资源得到释放;;

}

});

}

@Override

public void show()

{

super.show();

if (isSound)

{

mPlayer.start();

}

}

/**

* 设置是否播放声音

*/

public void setIsSound(boolean isSound)

{

this.isSound = isSound;

}

/**

* 获取控件实例

*

* @param context

* @param text

*提示消息

* @param isSound

*是否播放声音

* @return

*/

public static MyToast show(Context context, CharSequence text, boolean isSound, int duration)

{

MyToast result = new MyToast(context, isSound);

LayoutInflater inflate = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

DisplayMetrics dm = context.getResources().getDisplayMetrics();

View v = inflate.inflate(R.layout.new_data_toast, null);

// v.setMinimumWidth(dm.widthPixels);// 设置控件最小宽度为手机屏幕宽度

TextView tv = (TextView) v.findViewById(R.id.new_data_toast_message);

tv.setText(text);

result.setView(v);

result.setDuration(duration);// 设置 显示多长时间;;;;

result.setGravity(Gravity.BOTTOM, 0, (int) (dm.density * 85));

return result;

}

}

</STRONG></SPAN>

package weibo.lixiaodaoaaa.view;

import weibo.lixiaodaoaaa.ui.R;

import android.content.Context;

import android.media.MediaPlayer;

import android.util.DisplayMetrics;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.TextView;

import android.widget.Toast;

/**

* 带声音提示的Toast自定义 Toast控件

*

* @author http://weibo.com/lixiaodaoaaa http://t.qq.com/lixiaodaoaaa

* @version 0.1

* @created 2013-4-23

*/

public class MyToast extends Toast

{

private MediaPlayer mPlayer;

private boolean isSound;

public MyToast(Context context)

{

this(context, false);

}

// isSound 表示是否播放音乐;;;;

public MyToast(Context context, boolean isSound)

{

super(context);

this.isSound = isSound;

mPlayer = MediaPlayer.create(context, R.raw.allsuccess);

mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()

{

@Override

public void onCompletion(MediaPlayer mp)

{

mp.release();// 释放资源。让资源得到释放;;

}

});

}

@Override

public void show()

{

super.show();

if (isSound)

{

mPlayer.start();

}

}

/**

* 设置是否播放声音

*/

public void setIsSound(boolean isSound)

{

this.isSound = isSound;

}

/**

* 获取控件实例

*

* @param context

* @param text

*提示消息

* @param isSound

*是否播放声音

* @return

*/

public static MyToast show(Context context, CharSequence text, boolean isSound, int duration)

{

MyToast result = new MyToast(context, isSound);

LayoutInflater inflate = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

DisplayMetrics dm = context.getResources().getDisplayMetrics();

View v = inflate.inflate(R.layout.new_data_toast, null);

// v.setMinimumWidth(dm.widthPixels);// 设置控件最小宽度为手机屏幕宽度

TextView tv = (TextView) v.findViewById(R.id.new_data_toast_message);

tv.setText(text);

result.setView(v);

result.setDuration(duration);// 设置 显示多长时间;;;;

result.setGravity(Gravity.BOTTOM, 0, (int) (dm.density * 85));

return result;

}

}

显示效果如下:

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港