android Toast大全五种情形建立属于你自己的Toast.docx
- 文档编号:8747890
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:27
- 大小:240.03KB
android Toast大全五种情形建立属于你自己的Toast.docx
《android Toast大全五种情形建立属于你自己的Toast.docx》由会员分享,可在线阅读,更多相关《android Toast大全五种情形建立属于你自己的Toast.docx(27页珍藏版)》请在冰豆网上搜索。
androidToast大全五种情形建立属于你自己的Toast
androidToast大全(五种情形)建立属于你自己的Toast
Toast用于向用户显示一些帮助/提示。
下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。
1.默认效果
代码
Toast.makeText(getApplicationContext(),"默认Toast样式",
Toast.LENGTH_SHORT).show();
2.自定义显示位置效果
代码
toast=Toast.makeText(getApplicationContext(),
"自定义位置Toast",Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
3.带图片效果
代码
toast=Toast.makeText(getApplicationContext(),
"带图片的Toast",Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,0,0);
LinearLayouttoastView=(LinearLayout)toast.getView();
ImageViewimageCodeProject=newImageView(getApplicationContext());
imageCodeProject.setImageResource(R.drawable.icon);
toastView.addView(imageCodeProject,0);
toast.show();
4.完全自定义效果
代码
LayoutInflaterinflater=getLayoutInflater();
Viewlayout=inflater.inflate(R.layout.custom,
(ViewGroup)findViewById(R.id.llToast));
ImageViewimage=(ImageView)layout
.findViewById(R.id.tvImageToast);
image.setImageResource(R.drawable.icon);
TextViewtitle=(TextView)layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
TextViewtext=(TextView)layout.findViewById(R.id.tvTextToast);
text.setText("完全自定义Toast");
toast=newToast(getApplicationContext());
toast.setGravity(Gravity.RIGHT|Gravity.TOP,12,40);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
5.其他线程
代码
newThread(newRunnable(){
publicvoidrun(){
showToast();
}
}).start();
完整代码
1.Main,java
packagecom.wjq.toast;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.view.Gravity;
importandroid.view.LayoutInflater;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.view.View.OnClickListener;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importandroid.widget.TextView;
importandroid.widget.Toast;
publicclassMainextendsActivityimplementsOnClickListener{
Handlerhandler=newHandler();
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.btnSimpleToast).setOnClickListener(this);
findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(
this);
findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);
findViewById(R.id.btnCustomToast).setOnClickListener(this);
findViewById(R.id.btnRunToastFromOtherThread).setOnClickListener(this); }
publicvoidshowToast(){
handler.post(newRunnable(){
@Override
publicvoidrun(){
Toast.makeText(getApplicationContext(),"我来自其他线程!
",
Toast.LENGTH_SHORT).show();
} }); }
@Override
publicvoidonClick(Viewv){
Toasttoast=null;
switch(v.getId()){
caseR.id.btnSimpleToast:
Toast.makeText(getApplicationContext(),"默认Toast样式",
Toast.LENGTH_SHORT).show();
break;
caseR.id.btnSimpleToastWithCustomPosition:
toast=Toast.makeText(getApplicationContext(),
"自定义位置Toast",Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,0,0);
toast.show();
break;
caseR.id.btnSimpleToastWithImage:
toast=Toast.makeText(getApplicationContext(),
"带图片的Toast",Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER,0,0);
LinearLayouttoastView=(LinearLayout)toast.getView();
ImageViewimageCodeProject=newImageView(getApplicationContext());
imageCodeProject.setImageResource(R.drawable.icon);
toastView.addView(imageCodeProject,0);
toast.show();
break;
caseR.id.btnCustomToast:
LayoutInflaterinflater=getLayoutInflater();
Viewlayout=inflater.inflate(R.layout.custom,
(ViewGroup)findViewById(R.id.llToast));
ImageViewimage=(ImageView)layout
.findViewById(R.id.tvImageToast);
image.setImageResource(R.drawable.icon);
TextViewtitle=(TextView)layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
TextViewtext=(TextView)layout.findViewById(R.id.tvTextToast);
text.setText("完全自定义Toast");
toast=newToast(getApplicationContext());
toast.setGravity(Gravity.RIGHT|Gravity.TOP,12,40);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
break;
caseR.id.btnRunToastFromOtherThread:
newThread(newRunnable(){
publicvoidrun(){
showToast();
}
}).start();
break; } }}
2.main,xml
xmlversion="1.0"encoding="utf-8"?
>
android=" android: orientation="vertical"android: layout_width="fill_parent" android: layout_height="fill_parent"android: padding="5dip"android: gravity="center"> layout_height="wrap_content" android: layout_width="fill_parent"android: id="@+id/btnSimpleToast" android: text="默认"> layout_height="wrap_content" android: layout_width="fill_parent"android: text="自定义显示位置" android: id="@+id/btnSimpleToastWithCustomPosition"> layout_height="wrap_content" android: layout_width="fill_parent"android: id="@+id/btnSimpleToastWithImage" android: text="带图片"> layout_height="wrap_content" android: layout_width="fill_parent"android: text="完全自定义" android: id="@+id/btnCustomToast"> layout_height="wrap_content" android: layout_width="fill_parent"android: text="其他线程" android: id="@+id/btnRunToastFromOtherThread"> 3.custom.xml xmlversion="1.0"encoding="utf-8"? > xmlns: android=" android: layout_height="wrap_content"android: layout_width="wrap_content" android: background="#ffffffff"android: orientation="vertical" android: id="@+id/llToast"> android: layout_height="wrap_content" android: layout_margin="1dip" android: textColor="#ffffffff" android: layout_width="fill_parent" android: gravity="center" android: background="#bb000000" android: id="@+id/tvTitleToast"/> android: layout_height="wrap_content" android: orientation="vertical" android: id="@+id/llToastContent" android: layout_marginLeft="1dip" android: layout_marginRight="1dip" android: layout_marginBottom="1dip" android: layout_width="wrap_content" android: padding="15dip" android: background="#44000000"> android: layout_height="wrap_content" android: layout_gravity="center" android: layout_width="wrap_content" android: id="@+id/tvImageToast"/> android: layout_height="wrap_content" android: paddingRight="10dip" android: paddingLeft="10dip" android: layout_width="wrap_content" android: gravity="center" android: textColor="#ff000000" android: id="@+id/tvTextToast"/> Android系统里面有3种类型的菜单: optionsmenu,contextmenu,submenu。 optionsmenu 按Menu键就会显示,用于当前的Activity。 它包括两种菜单项: 因为optionsmenu在屏幕底部最多只能显示6个菜单项,这些菜单项称为iconmenu,iconmenu只支持文字(title)以及icon,可以设置快捷键,不支持checkbox以及radio控件,所以不能设置checkable选项。 而多于6的菜单项会以“more”iconmenu来调出,称为expandedmenu。 它不支持icon,其他的特性都和iconmenu一样! 在Activity里面,一般通过以下函数来使用optionsmenu: Activity: : onCreateOptionsMenu(Menumenu) 创建optionsmenu,这个函数只会在menu第一次显示时调用。 Activity: : onPrepareOptionsMenu(Menumenu) 更新改变optionsmenu的内容,这个函数会在menu每次显示时调用。 Activity: : onOptionsItemSelected(MenuItemitem)处理选中的菜单项。 contextmenu 要在相应的view上按几秒后才显示的,用于view,跟某个具体的view绑定在一起。 这类型的菜单不支持icon和快捷键! 在Activity里面,一般通过以下函数来使用contextmenu: Activity: : registerForContextMenu(Viewview)为某个view注册contextmenu,一般在Activity: : onCreate里面调用。 Activity: : onCreateContextMenu(ContextMenumenu,Viewv,ContextMenu.ContextMenuInfomenuInfo)创建contextmenu,和optionsmenu不同,contextmeun每次显示时都会调用这个函数。 Activity: : onContextItemSelected(MenuItemitem)处理选中的菜单项。 submenu 以上两种menu都可以加入子菜单,但子菜单不能嵌套子菜单,这意味着在Android系统,菜单只有两层,设计时需要注意的! 同时子菜单不支持icon。 xml形式的menu定义及应用 上述的三种类型的menu都能够定义为xml资源,但需要手动地使用MenuInflater来得到Menu对象的引用。 一个菜单,对应一个xml文件,因为要求只能有一个根节点 官方说 xml>声明可以不写,但我觉得还是写上好些,很多时候那个 xml>声明主要是为了声明编码格式utf-8之类的。 xml文件保存为res/menu/some_file.xml。 Java代码引用资源: R.menu.some_file 接下来介绍相关的节点和属性(所有的属性都定义为android空间内,例如android: icon="@drawable/icon"): 相关属性包括: id: groupid menuCategory: 对应 常量MenuCATEGORY_* —定义了一组的优先权,有 效值: container,system,secondary,和alternative orderInCategory: 定义这组菜单在菜单中的默认次序,int值 checkableBehavior: 这组菜单项是否checkable。 有效值: none,all(单选/单选按钮radiobutton),single(非单选/复选类型checkboxes) visible: 这组菜单是否可见trueorfalse enabled: 这组菜单是否可用,trueorfalse 相关属性包括: id: itemid menuCategory: 用来定义menu类别 orderInCategory: 用来定义次序,与一个组在一起(Usedtodefinetheorderoftheitem,withinagroup) title: 标题 titleCondensed: 标题摘要,当原标题太长的时候,需要用简短的字符串来代替title icon: icon图标 alphabeticShortcut: 字母快捷键 numericShortcut: 数学快捷键 checkable: 是否为checkbox,trueorfalse checked: 是否设置为checked状态,trueorfalse visible: 是否可见,trueorfalse enabled: 是否可用,trueorfalse xml示例: xml version="1.0" encoding="utf-8"? >
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- android Toast大全五种情形建立属于你自己的Toast Toast 大全 情形 建立 属于 你自己