自定义一个简单的带图片的Toast
自定义Toast比较简单,只需要用Java代码编写布局组件,然后调用Toast的setView(View view)方法将自定义的布局组件设置进去即可
效果图:
- package com.demo;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.ImageButton;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- public class ToastTest extends Activity {
- private Button show;
- private TextView textView;
- private ImageView p_w_picpathView;
- private Toast toast;
- private LinearLayout lnl; //用于自定义Toast的布局
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //相关组件的初始化
- show=(Button) findViewById(R.id.show);
- toast=new Toast(ToastTest.this);
- lnl=new LinearLayout(ToastTest.this);
- p_w_picpathView=new ImageButton(ToastTest.this);
- textView=new TextView(ToastTest.this);
- p_w_picpathView.setImageResource(R.drawable.icon);
- textView.setText("Toast with picture and text");
- //lnl中包含了一个ImageView和一个TextView
- lnl.addView(p_w_picpathView);
- lnl.addView(textView);
- toast.setView(lnl);
- show.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- //设置toast以lnl这个布局来显示内容
- toast.show();
- toast.setDuration(300);
- }
- });
- }
-
}
转载于:https://blog.51cto.com/randino/841052