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

来源:互联网 发布:知乎 西方哲学史 编辑:程序博客网 时间:2024/04/30 07:02

自定义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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubView 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>
下载地址:
http://download.csdn.net/detail/lowtec_dream/6835043


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


findViewById(R.id.btn_toast).setOnClickListener(new OnClickListener() {@Overridepublic 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();}}});@Overridepublic 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




0 0
原创粉丝点击