首页 > 其他 > 详细

自定义 Widget (Toast)

时间:2014-03-04 01:10:23      阅读:487      评论:0      收藏:0      [点我收藏+]

  1、Toast控件:

  通过查看源代码,发现Toast里面实现的原理是通过服务Context.LAYOUT_INFLATER_SERVICE获取一个LayoutInflater布局管理器,从而获取一个View对象(TextView),设置内容将其显示.

bubuko.com,布布扣
public static Toast makeText(Context context, CharSequence text, int duration) {
        Toast result = new Toast(context);

        LayoutInflater inflate = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
        TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
        tv.setText(text);
        
        result.mNextView = v;
        result.mDuration = duration;

        return result;
    }
bubuko.com,布布扣

  定义布局文件:

bubuko.com,布布扣
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dip"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/iv_my_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/notification" />

    <TextView
        android:id="@+id/tv_my_toast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:textSize="18sp"
        android:text="text"
        />

</LinearLayout>
bubuko.com,布布扣

  自定义MyToast类:

bubuko.com,布布扣
public class MyToast {

    /**
     * 显示自定义的土司
     * @param context 上下文
     * @param iconid 图标的id
     * @param text 显示的文本
     */
    public static void showToast(Context context,int iconid, String text){
        View view = View.inflate(context, R.layout.my_toast, null);
           TextView tv = (TextView) view.findViewById(R.id.tv_my_toast);
        ImageView iv = (ImageView) view.findViewById(R.id.iv_my_toast);
        iv.setImageResource(iconid);
        tv.setText(text);
        Toast toast = new Toast(context);
        toast.setDuration(0);
        toast.setView(view);
        toast.show();
    }
    
}
bubuko.com,布布扣

自定义 Widget (Toast),布布扣,bubuko.com

自定义 Widget (Toast)

原文:http://www.cnblogs.com/lbangel/p/3578334.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!