zoukankan      html  css  js  c++  java
  • 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); 
        } 
  • 相关阅读:
    SGU 495 Kids and Prizes 概率DP 或 数学推理
    poj 2799 IP Networks 模拟 位运算
    uva 202 Repeating Decimals 模拟
    poj 3158 Kickdown 字符串匹配?
    uva 1595 Symmetry 暴力
    uva 201 Squares 暴力
    uva 1594 Ducci Sequence 哈希
    uva 1368 DNA Consensus String 字符串
    数字、字符串、列表的常用操作
    if条件判断 流程控制
  • 原文地址:https://www.cnblogs.com/draem0507/p/3126652.html
Copyright © 2011-2022 走看看