import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;
public class ToastUtil
{
private static int gravityNone = -100;
public static void shortNormal(Context context, String text){
show(context, gravityNone, Toast.LENGTH_SHORT, text);
}
public static void shortAtCenter(Context context, String text){
show(context, Gravity.CENTER, Toast.LENGTH_SHORT, text);
}
public static void shortAtTop(Context context, String text){
show(context, Gravity.TOP, Toast.LENGTH_SHORT, text);
}
public static void shortAtTopInThread(final Context context, final String text){
if (context == null){
return;
}
((Activity) context).runOnUiThread(new Runnable() {
public void run()
{
show(context, Gravity.TOP, Toast.LENGTH_SHORT, text);
}
});
}
public static void longNormal(Context context, CharSequence text){
Toast.makeText(context, text, Toast.LENGTH_LONG).show();
}
public static void longAtCenter(Context context, String text){
show(context, Gravity.CENTER, Toast.LENGTH_LONG, text);
}
public static void longAtTop(Context context, String text){
show(context, Gravity.TOP, Toast.LENGTH_LONG, text);
}
public static void longAtTopInThread(final Context context, final String text){
if (context == null){
return;
}
((Activity) context).runOnUiThread(new Runnable() {
public void run()
{
show(context, Gravity.CENTER, Toast.LENGTH_LONG, text);
}
});
}
public static void shortInThread(final Context context, final String text)
{
if (context == null){
return;
}
((Activity) context).runOnUiThread(new Runnable() {
public void run()
{
show(context, gravityNone, Toast.LENGTH_SHORT, text);
}
});
}
public static void shortAtCenterInThread(final Context context, final String text)
{
if (context == null){
return;
}
((Activity) context).runOnUiThread(new Runnable() {
public void run()
{
show(context, Gravity.CENTER, Toast.LENGTH_SHORT, text);
}
});
}
public static void longInThread(final Context context, final String text)
{
if (context == null){
return;
}
((Activity) context).runOnUiThread(new Runnable() {
public void run()
{
show(context, gravityNone, Toast.LENGTH_LONG, text);
}
});
}
public static void longAtCenterInThread(final Context context, final String text)
{
if (context == null){
return;
}
((Activity) context).runOnUiThread(new Runnable() {
public void run()
{
show(context, Gravity.CENTER, Toast.LENGTH_LONG, text);
}
});
}
@SuppressWarnings("deprecation")
public static void show(Context context, int gravity, int duration, String text) {
Toast toast = Toast.makeText(context, text, duration);
if(gravity==Gravity.CENTER){
toast.setGravity(gravity, 0, -100);
}else if(gravity==Gravity.TOP){
toast.setGravity(gravity, 0, 100);
}
TextView textView = new TextView(context);
textView.setTextColor(Color.parseColor("#FFFFFF"));
textView.setPadding(dp2Px(8, context),dp2Px(8, context),dp2Px(8, context), dp2Px(8, context));
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
textView.setLayoutParams(params);
if(!TextUtils.isEmpty(text)){
textView.setText(text);
}else{
textView.setText(" ");
}
GradientDrawable gradientDrawableNormal = new GradientDrawable();
gradientDrawableNormal.setShape(GradientDrawable.RECTANGLE);
gradientDrawableNormal.setColor(Color.parseColor("#99353535"));
float radius = dp2Px(4, context);
gradientDrawableNormal.setCornerRadii(new float[]{radius , radius, radius, radius, radius, radius, radius, radius});
textView.setBackgroundDrawable(gradientDrawableNormal);
toast.setView(textView);
toast.show();
}
/**数据转换: dp---->px*/
private static int dp2Px(float dp, Context context)
{
if (context == null) {
return -1;
}
return (int) (dp * context.getResources().getDisplayMetrics().density);
}
}
文/Alex_Cin(简书作者)
原文链接:http://www.jianshu.com/p/675e71f24e2d
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
ToastUils
最新推荐文章于 2019-10-06 20:26:37 发布