天天看點

Android篇Toast講解

   Toast是app常用彈出資訊的工具,下面介紹一下用法。

一、直接調用Toast類的makeText()方法建立,下面一段代碼,是一般常用的寫法,有三個參數,

  • 第一個是:context(上下文),一般在Activity是傳入this就行了,也可以獲得context的方法
  • 第二個是:字元串類型的值代表你要彈出的消息
  • 第三個是:顯示的時間,在Toast有兩個靜态常量的可選值Toast.LENGTH_SHORT和Toast.LENGTH_LONG,或者可以自己輸入值1000/2000(代表1s/2s)
Toast.makeText(getApplicationContext(),"彈出的消息",Toast.LENGTH_SHORT).show();
           

二、我們還可以設定一些别的屬性,例如:顯示的位置和字型的顔色

public class MainActivity extends AppCompatActivity {

    private Button show;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        View viewById = findViewById(R.id.show);
        viewById.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                midToast("你好",2000);
            }
        });
    }

    public void midToast(String text,int showTime){
        Toast toast = Toast.makeText(this,text,showTime);
        toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0);  //設定顯示位置
        TextView message = toast.getView().findViewById(android.R.id.message);
        message.setTextColor(Color.YELLOW); //設定字型顔色
        toast.show();
    }

}
           

效果

Android篇Toast講解

上面給一個buttom設定了一個監聽,還定義了一個方法,方法中Toast.makeText了一段話,接着設定了Gravity(重力):水準或垂直居中,再通過toast可以獲得一個視圖,通過視圖可以獲得一個message的TextView之後你就可以操作TextView了,最後記得.show()顯示出來。

三、我們再推進一下,還可以放一張圖檔

代碼

public void midToast(String text,int showTime){
        Toast toast = Toast.makeText(this,text,showTime);
        toast.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL, 0, 0);  //設定顯示位置

        LinearLayout layout = (LinearLayout) toast.getView();   //強轉成LinearLayout
        ImageView imageView = new ImageView(this);    //定義一個圖檔視圖,需要一個上下文
        imageView.setImageResource(R.mipmap.ic_launcher);       //設定圖檔
        layout.addView(imageView);  //把圖檔添加進去

        TextView message = toast.getView().findViewById(android.R.id.message);
        message.setTextColor(Color.YELLOW); //設定字型顔色
        toast.show();
    }
           

效果

Android篇Toast講解