Android里五种 Toast方式,在字节跳动我是如何当面试官的

65 阅读2分钟

toast.setGravity(Gravity.CENTER, 0, 0);

LinearLayout toastView = (LinearLayout) toast.getView();

ImageView imageCodeProject = new ImageView(getApplicationContext());

imageCodeProject.setImageResource(R.drawable.icon);

toastView.addView(imageCodeProject, 0);

toast.show();




4.完全自定义效果



![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/daeea9ef949f488d86f318438813da8b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1773071741&x-signature=KRU0hgtdwRBLn0%2FyPAeUAC70cv4%3D)



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




5.其他线程



![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/776810496d06493da7ebbd760f3c577f~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1773071741&x-signature=u4uP%2BH3755aghFFk85b%2BrhVf2h8%3D)



new Thread(new Runnable() {

public void run() {

showToast();



}

}).start();




完整代码



package com.wjq.toast;

  import android。app。Activity;

  import android。os。Bundle;

  import android。os。Handler;

  import android。view。Gravity;

  import android。view。LayoutInflater;

  import android。view。View;

  import android。view。ViewGroup;

  import android。view。View。OnClickListener;

  import android。widget。ImageView;

  import android。widget。LinearLayout;

  import android。widget。TextView;

  import android。widget。Toast;

  public class Main extends Activity implements OnClickListener {

  Handler handler = new Handler();

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super。onCreate(savedInstanceState);

  setContentView(R。layout。main);

  findViewById(R。id。btnSimpleToast)。setOnClickListener(this);

  findViewById(R。id。btnSimpleToastWithCustomPosition)。setOnClickListener(

  this);

  findViewById(R。id。btnSimpleToastWithImage)。setOnClickListener(this);

  findViewById(R。id。btnCustomToast)。setOnClickListener(this);

  findViewById(R。id。btnRunToastFromOtherThread)。setOnClickListener(this);

  }

  public void showToast() {

  handler。post(new Runnable() {

  @Override

  public void run() {

  Toast。makeText(getApplicationContext(), "我来自其他线程!",

  Toast。LENGTH_SHORT)。show();

  }

  });

  }

  @Override

  public void onClick(View v) {

  Toast toast = null;

  switch (v。getId()) {

  case R。id。btnSimpleToast:

  Toast。makeText(getApplicationContext(), "默认Toast样式",

  Toast。LENGTH_SHORT)。show();

  break;

  case R。id。btnSimpleToastWithCustomPosition:

  toast = Toast。makeText(getApplicationContext(),

  "自定义位置Toast", Toast。LENGTH_LONG);

  toast。setGravity(Gravity。CENTER, 0, 0);

  toast。show();

  break;

  case R。id。btnSimpleToastWithImage:

  toast = Toast。makeText(getApplicationContext(),

  "带图片的Toast", Toast。LENGTH_LONG);

  toast。setGravity(Gravity。CENTER, 0, 0);

  LinearLayout toastView = (LinearLayout) toast。getView();

  ImageView imageCodeProject = new ImageView(getApplicationContext());

  imageCodeProject。setImageResource(R。drawable。icon);

  toastView。addView(imageCodeProject, 0);

  toast。show();

  break;

  case R。id。btnCustomToast:

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

  break;

  case R。id。btnRunToastFromOtherThread:

  new Thread(new Runnable() {

  public void run() {

  showToast();

  }

  })。start();

  break;

  }

  }

  }




2.main,xml  



## 学习交流

**如果你觉得自己学习效率低,缺乏正确的指导,可以[加入资源丰富,学习氛围浓厚的技术圈一起学习交流吧](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)!**

> ![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/dedeaa985dd547d6b6e7d718f43c6e9d~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1773071741&x-signature=OS5gao235EPhoSRHzqeFTzTl%2BxE%3D)
>
> ![](https://p9-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/be618f3c279e46a891ff2b5b0b73388b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MDY4Mzc0MTQxMzQ0:q75.awebp?rk3s=f64ab15b&x-expires=1773071741&x-signature=l7oe6KFuq3Q8Z%2FMvHF%2FNs1CnuO4%3D)

群内有许多来自一线的技术大牛,也有在小厂或外包公司奋斗的码农,我们致力打造一个平等,高质量的Android交流圈子,不一定能短期就让每个人的技术突飞猛进,但从长远来说,眼光,格局,长远发展的方向才是最重要的。

35岁中年危机大多是因为被短期的利益牵着走,过早压榨掉了价值,如果能一开始就树立一个正确的长远的职业规划。35岁后的你只会比周围的人更值钱。