• android toast几种使用方法


    toast经常会用到,今天做个总结,特别是自定义toast的布局,值得一看。

    一.默认展示

    1. // 第一个参数:当前的上下文环境。可用getApplicationContext()或this 
    2. // 第二个参数:要显示的字符串。也可是R.string中字符串ID 
    3. // 第三个参数:显示的时间长短。Toast默认的有两个LENGTH_LONG(长)和LENGTH_SHORT(短),也可以使用毫秒如2000ms 
    4. Toast toast=Toast.makeText(getApplicationContext(), "默认的Toast", Toast.LENGTH_SHORT); 
    5. //显示toast信息 
    6. toast.show(); 

    二.自定义显示位置

    1. Toast toast=Toast.makeText(getApplicationContext(), "自定义显示位置的Toast", Toast.LENGTH_SHORT); 
    2.         //第一个参数:设置toast在屏幕中显示的位置。我现在的设置是居中靠顶 
    3.         //第二个参数:相对于第一个参数设置toast位置的横向X轴的偏移量,正数向右偏移,负数向左偏移 
    4.         //第三个参数:同的第二个参数道理一样 
    5.         //如果你设置的偏移量超过了屏幕的范围,toast将在屏幕内靠近超出的那个边界显示 
    6.         toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100);  
    7.         //屏幕居中显示,X轴和Y轴偏移量都是0 
    8.         //toast.setGravity(Gravity.CENTER, 0, 0);  
    9.         toast.show(); 

    三、带图片的

    1. oast toast=Toast.makeText(getApplicationContext(), "显示带图片的toast", 3000); 
    2.         toast.setGravity(Gravity.CENTER, 0, 0);  
    3.         //创建图片视图对象 
    4.         ImageView imageView= new ImageView(getApplicationContext()); 
    5.         //设置图片 
    6.         imageView.setImageResource(R.drawable.ic_launcher); 
    7.         //获得toast的布局 
    8.         LinearLayout toastView = (LinearLayout) toast.getView(); 
    9.         //设置此布局为横向的 
    10.         toastView.setOrientation(LinearLayout.HORIZONTAL); 
    11.         //将ImageView在加入到此布局中的第一个位置 
    12.         toastView.addView(imageView, 0); 
    13.         toast.show(); 

    四、完全自定义显示方式

    1. toast.xml布局

    <ImageView
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
    
            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    
            <TextView
                android:id="@+id/content"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
    
        </LinearLayout>
    toast.xml

    2.代码

    public class ToastActivity extends Activity {
        private Button bt;
        private ImageView image;
        private TextView title, content;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            bt = (Button) findViewById(R.id.bt);
            bt.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showToast();
                }
            });
        }
    
        private void showToast() {
            LayoutInflater inflater = getLayoutInflater();
            View view = inflater.inflate(R.layout.toast, null);
            image = (ImageView) view.findViewById(R.id.image);
            title = (TextView) view.findViewById(R.id.title);
            content = (TextView) view.findViewById(R.id.content);
            image.setBackgroundResource(R.drawable.ic_launcher);
            title.setText("自定义toast");
            content.setText("hello,self toast");
            Toast toast = new Toast(getApplicationContext());
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.setDuration(Toast.LENGTH_SHORT);
            toast.setView(view);
            toast.show();
        }
    
    }

    五、其他线程通过Handler的调用

    //调用方法1 
        //Thread th=new Thread(this); 
        //th.start(); 
        //调用方法2 
        handler.post(new Runnable() { 
            @Override 
            public void run() { 
                showToast(); 
            } 
        }); 
     
    Java代码
    public void showToast(){ 
            Toast toast=Toast.makeText(getApplicationContext(), "Toast在其他线程中调用显示", Toast.LENGTH_SHORT); 
            toast.show(); 
        } 
     
    Java代码
    Handler handler=new Handler(){ 
            @Override 
            public void handleMessage(Message msg) { 
                int what=msg.what; 
                switch (what) { 
                case 1: 
                    showToast(); 
                    break; 
                default: 
                    break; 
                } 
                 
                super.handleMessage(msg); 
            } 
        }; 
     
    Java代码
    @Override 
        public void run() { 
            handler.sendEmptyMessage(1); 
        } 
  • 相关阅读:
    Thinkphp6.0/TP6框架中新增函数的解释及用法
    PHP7.1的几个新特性
    tp6数据库mysql调试
    nginx基本配置
    redis配置
    redis的笔记
    thinkphp学习笔记
    vsCode软件相关快捷键
    erlang随笔3--OTP
    文献综述二十:基于UML技术的客户关系管理系统实现
  • 原文地址:https://www.cnblogs.com/draem0507/p/3126652.html
Copyright © 2020-2023  润新知