• android 自定义Toast & 如何使Toast随Activity消失而消失


    自定义toast(包括带图片的toast以及 自定义底色和边框的Toast)

    自定义位置的toast

    在Activity中创建一个toast对象,然后:
    	toast = Toast.makeText(getApplicationContext(), "自定义位置Toast",Toast.LENGTH_LONG);
    	toast.setGravity(Gravity.CENTER, 0, 0);
    	toast.show();

    带图片和文字的toast

    代码如下:
    toast = Toast.makeText(getApplicationContext(), "带图片的Toast",Toast.LENGTH_LONG);
    	toast.setGravity(Gravity.CENTER, 0, 0);
    
    	LinearLayout toastView = (LinearLayout) toast.getView();
    	ImageView image = new ImageView(getApplicationContext());
    	image.setImageResource(R.drawable.ic_launcher);
    	toastView.addView(image, 0);
    	toast.show();


    自定义边框以及底色的toast

    btn_test_toast5.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				View toastRoot = getLayoutInflater().inflate(R.layout.my_toast,
    						null);
                                    // 圆角 灰色背景
    				Toast toast = new Toast(getApplicationContext());
    				toast.setView(toastRoot);
    				toast.show();
    			}
    		});
    在 my_toast布局文件中:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/my_border" >
    
        <TextView
            android:id="@+id/TextViewInfo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:text="这是一个自定义背景颜色的提示框"
            android:textColor="#fff"/>
        
         <!-- android:textColor="#ff00ff00" -->
    
    </LinearLayout>

    在my_border.xml文件中:
    <?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <!-- toast 显示窗体的背景色 -->
        <solid android:color="#4f5555" />
    
        <stroke
            android:width="1dp"
            android:color="#FFFFFFFF" />
    
        <padding
            android:bottom="7dp"
            android:left="7dp"
            android:right="7dp"
            android:top="7dp" />
    
        <!-- radius 越大,圆角矩形弯曲越明显 -->
        <corners android:radius="6dp" />
    
    </shape>
    下载地址:


    如何使toast随Activity消失而消失?


    findViewById(R.id.btn_toast).setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View v) {
    				// 只创建一个Toast对象
    				if (toast != null) {
    					count++;
    					toast.setText(str + "count:" + count);
    					toast.setDuration(Toast.LENGTH_LONG);
    					toast.show();
    				} else {
    					count++;
    					toast = Toast.makeText(MainActivity.this, str + "count:"
    							+ count, duration);
    					toast.show();
    				}
    			}
    		});
    
    @Override
    	public boolean onKeyDown(int keyCode, KeyEvent event) {
    		if (keyCode == KeyEvent.KEYCODE_BACK) {
    			this.finish();
    			if (toast != null) {
    				toast.cancel();
    			}
    			
    		}
    		return super.onKeyDown(keyCode, event);
    	}

    // 只创建一个Toast对象,在合适的地方把Toast给cancel()就可以了。
    2014-11-20 17:53:33




  • 相关阅读:
    atcoder做题记录
    CSP-S2021题解
    记录近期JAVA后端开发面试总结
    技术文章系列汇总(csdn转载)
    个人技术文章系列汇总(简书)
    个人技术文章系列汇总(csdn原创)
    解密Kafka吞吐量高的原因
    Java 常见面试题整理
    restemplate调用失败提示 处理方法
    Keil MDK忽略警告:文件末尾空白行警告
  • 原文地址:https://www.cnblogs.com/jinfenglee/p/4388723.html
Copyright © 2020-2023  润新知