为什么叫Toast?我擦 ,为什么一定要独立一个类似对话框的东东呢?
查了下,Toast是吐司,一种美国人早上插到烤面包机里考了再吃的面包!遂明白,大概为这个组件命名的人形象的给这个组件赋予了这个名字。Toast就像是那种面包一样一下子跳出来。那为啥不是一种Dialog呢? 诶 ,学习了下: DIY效果由浅入深
1.默认普通效果的Toast
效果:
代码:
Toast.makeText(getApplicationContext(), "这是一个普通的toast", Toast.LENGTH_SHORT).show();
2.自定义位置的Toast
效果:
代码:
Toast toast=Toast.makeText(getApplicationContext(), "这是一个自定义位置的Toast", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER,50, 100);
toast.show();
3.自定义带图片的Toast
效果:
代码:
Toast toast=Toast.makeText(getApplicationContext(), "自定义图片的Toast", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
LinearLayout toastView = (LinearLayout) toast.getView();
ImageView imageCodeProject = new ImageView(getApplicationContext());
imageCodeProject.setImageResource(R.drawable.ic_launcher);
toastView.addView(imageCodeProject, 0);
toast.show();
4.完全自定义Toast
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom,(ViewGroup) findViewById(R.id.llToast));
ImageView image = (ImageView) layout
.findViewById(R.id.tvImageToast);
image.setImageResource(R.drawable.icon);
TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
text.setText("完全自定义Toast");
toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();