- 浏览: 636680 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
laj12347:
楼主太给力了
Eclipse设置、调优、使用 -
kunlyy:
楼主太给力了
Eclipse设置、调优、使用 -
knight_black_bob:
mark ~
Eclipse设置、调优、使用 -
hujunxiang:
好全好全~~~
Eclipse设置、调优、使用 -
bugyun:
楼主辛苦了
Eclipse设置、调优、使用
Toast的基本原理其实就是将一个View添加到WindowManager中,让WindowManager来把View显示出来。(WindowManager可以将View显示在任何地方,任何Activity之上)
Toast的默认属性
在指定x, y处显示Toast
指定View的Toast
Toast部分源码
一直显示的Toast
实现原理是:在Toast隐藏之前,再show一个相同的Toast,来实现长显示的假象
使用ToastWrapper
Toast的默认属性
// 对其方式为:水平居中,并在底部 mGravity = Gravtiy.CENTER_HORIZONTAL | Gravtiy.BOTTOM; mX = 0; mY =context.getResources().getDimensionPixelSize(com.android.internal.R.dimen.toast_y_offset); mHorizontalMargin = 0; mVerticalMargin = 0; 所以用Toast.makeText(getApplicationContext(), R.string.text, Toast.LENGTH_SHORT).show();生成的Toast总是处在底部水平居中的位置
在指定x, y处显示Toast
// 在(50, 100)处显示Toast Toast toast = Toast.makeText(getApplicationContext(), "toast use", Toast.LENGTH_SHORT); toast.setGravity(Gravity.TOP | Gravity.LEFT, 50, 100); toast.show(); // 如果使用Gravity.NO_GRAVITY,后面的x, y就是相对于屏幕的中心点的(估计android是默认这么处理的) Toast toast = Toast.makeText(getApplicationContext(), "toast use", Toast.LENGTH_SHORT); toast.setGravity(Gravity.NO_GRAVITY, 50, 100); toast.show(); // 用margin来控制toast的位置 Toast toast = Toast.makeText(getApplicationContext(), "toast use", Toast.LENGTH_SHORT); toast.setGravity(Gravity.LEFT | Gravity.TOP, 0, 0); // leftMargin, topMargin分别是容器width, height的%多少(这里是10%和20%) toast.setMargin(0.1F, 0.2F); toast.show();
指定View的Toast
// 布局xml:R.layout.toast < Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" /> Toast toast = new Toast(getApplicationContext()); toast.setView(LayoutInflater.from(getApplicationContext()).inflate(R.layout.toast, null)); toast.setText("toast use"); // Button是否fill_parent是由gravity控制的, xml中的不起任何作用 toast.setGravity(toast.getGravity() | Gravity.FILL_HORIZONTAL, toast.getXOffset(), toast.getYOffset()); toast.setDuration(Toast.LENGTH_SHORT); toast.show();
Toast部分源码
// Toast的构造器只设置了mY这个属性。mNextView, mDuration都没有设置(用makeText的话,这两个属性会设置) public Toast(Context context) { mContext = context; mTN = new TN(); mY = context.getResources().getDimensionPixelSize(com.android.internal.R.dimen.toast_y_offset); } // setText方法,需要将显示text的view的id设为@android:id/message,否则会抛RuntimeException public void setText(CharSequence s) { if (mNextView == null) { throw new RuntimeException("This Toast was not created with Toast.makeText()"); } TextView tv = (TextView) mNextView.findViewById(com.android.internal.R.id.message); if (tv == null) { throw new RuntimeException("This Toast was not created with Toast.makeText()"); } tv.setText(s); }
一直显示的Toast
实现原理是:在Toast隐藏之前,再show一个相同的Toast,来实现长显示的假象
private class ToastWrapper { private Toast mToast; private Handler mHandler; private Runnable mShowToast = new Runnable() { @Override public void run() { continueShow(); } }; private boolean mCancelled = true; public ToastWrapper(Context ctxt) { this(ctxt, new Handler()); } public ToastWrapper(Context ctxt, Handler handler) { mToast = Toast.makeText(ctxt, null, Toast.LENGTH_SHORT); mHandler = handler; } public Toast getToast() { return mToast; } public void showUntilCancel() { if (mCancelled) { mCancelled = false; mToast.setDuration(Toast.LENGTH_LONG); continueShow(); } } public void cancel() { mCancelled = true; mToast.cancel(); } private void continueShow() { if (mCancelled) { return; } mToast.show(); mHandler.postDelayed(mShowToast, 3000); } }
使用ToastWrapper
// 一直显示的toast toastWrapper = new ToastWrapper(getApplicationContext()); Toast toast = toastWrapper.getToast(); toast.setText("toast wrapper"); // ... Button button = new Button(getApplicationContext()); button.setText("一直显示toast"); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { toastWrapper.showUntilCancel(); } }); Button button = new Button(getApplicationContext()); button.setText("隐藏toast"); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { toastWrapper.cancel(); } }); // 一搬的toast Button button = new Button(getApplicationContext()); button.setText("一般的toast"); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast toast = toastWrapper.getToast(); toast.setDuration(Toast.LENGTH_SHORT); toast.show(); } });
发表评论
-
Error: Cannot run program "sh": Launching failed
2014-02-20 21:05 3663**** Build of configuration De ... -
通过wifi来使用ADB[转]
2013-11-16 16:09 1492adb除了通过usb连接外,还可以通过tcp连接建立调试,在 ... -
Installation failed due to invalid APK file!
2013-11-16 15:42 8141今天在Eclipse里面测试Android的开发。 写好的代 ... -
QQ2013导致adb不能使用问题的修复[转]
2013-11-16 14:48 1608由于实在没法不用QQ,当QQ哭着闹着要升级到最新版的时候,手 ... -
adt安装慢解决
2013-06-08 14:29 4754安装adt的时候不管时在线安装还是下载下来了离线安装,都不见安 ... -
android 百度地图 wgs84和baidu09坐标转换
2012-11-14 23:35 17629wgs84: gps获取出来的坐标 ... -
hiero使用
2012-11-14 16:51 5132hiero是一个java小程序,能够帮助用户自定义.fnt ... -
分享一个日志类
2012-11-09 02:07 351/*** * <p> 封装日志api的调用 ... -
android相关工具收集
2012-07-30 09:33 1235常用 Java 静态代码分析工具的分析与比较 http://b ... -
proguard使用
2012-07-26 23:39 5322proguard的常见配置参数 -include {filen ... -
一张图让你明白android 九宫格工具使用
2012-07-07 16:13 2664... -
android sdk, adt等的下载
2012-06-28 21:38 16852一些小技巧 在eclipse中 ... -
ProgressBar定制
2011-12-07 09:04 4101ProgressBar的基本使用 可以参考这个:http:// ... -
android 源码 阅读
2011-11-24 14:50 3024虽然android的源码也时不时的会去看,但大部分还是只能看懂 ... -
Dialog定制
2011-11-18 14:47 7167定制dialog的方式 1. 可以通过Theme的方式,and ... -
android 开发资料收集
2011-10-28 14:32 1709Android 解屏幕锁与点亮屏幕:键盘锁(KeyguardM ... -
android单元测试
2011-09-09 17:08 0android测试框架涉及的类的UML图 activity测 ... -
android.os包中一些类的使用
2011-09-08 15:09 23555android.os.Build Build.BOARD ... -
android游戏开发学习
2011-09-06 16:55 10960相关资源 2D中如何判断一点在另一个点的那个方位: http: ... -
android xml解析 - sax
2011-08-16 18:19 2359android 2.3 sdk提供的与sax解析相关的类和接口 ...
相关推荐
【标题】:“Toast使用” 在Android开发中,`Toast`是一种常见的用户反馈机制,用于向用户展示短暂的信息提示,如操作成功、失败或其他提示性消息。`Toast`不会占用屏幕空间,也不会阻碍用户与界面的交互,是...
在Android Studio中创建一个包含Menu和Toast使用的Demo,你需要: 1. 创建一个新的Android项目。 2. 在`res/menu`目录下创建`menu_main.xml`文件,定义菜单项。 3. 在主Activity(如`MainActivity.java`)中重写`...
`Toast`通常在用户触发某个事件但不需要长时间反馈或不需要跳转到新界面时使用,比如点击按钮后显示“操作成功”等简短消息。 **一、`Toast`的基本用法** 创建`Toast`对象并显示消息,可以分为以下几个步骤: 1. ...
在本篇中,我们将深入探讨`Toast`的基本使用,对应于2.1章节中的`Toast`介绍。 首先,要创建并显示一个`Toast`,你需要先获得`Context`对象,通常是在`Activity`或`Fragment`中。`Context`是Android系统中非常基础...
3. **创建提示**:使用 `.toast('message')` 创建一个简单的提示,或者使用 `.toast(options)` 接受一个配置对象来创建更复杂的提示。 - `options` 可能包含: - `type`:提示类型,如 `'success'`、`'warning'`、...
本篇文章将深入探讨`Toast`的使用方法,包括基本用法、自定义样式以及源码解析,帮助开发者更好地理解和运用`Toast`。 ### 1. 基本用法 `Toast`的基本用法非常简单,通常通过`Toast.makeText()`方法创建一个`Toast...
默认的Toast使用非常简单,只需要调用`Toast.makeText()`方法即可。例如: ```java Toast.makeText(context, "这是一个默认的Toast", Toast.LENGTH_SHORT).show(); ``` 这里的`context`是上下文对象,可以是...
通过上述五种不同情形的介绍,可以看出Android Toast的使用非常灵活,可以根据不同的需求场景选择合适的Toast使用方式,从而提升应用的用户体验。在实际开发中,开发人员可以根据具体的应用需求,选择合适的Toast...
【mac】dvd光盘刻录 Roxio Toast Titanium 17.4.dmg,安装即用
1. **基础的Toast使用** - Android中的Toast是通过`Toast.makeText()`方法创建的。这个方法接收三个参数:上下文(Context)、显示的消息(String)和持续时间(int,可以是`Toast.LENGTH_SHORT`或`Toast.LENGTH_...
1. **基本的Toast使用**: Android中的`Toast`类用于创建和显示简单的消息。要创建一个Toast,首先需要实例化一个`Toast`对象,然后调用其`makeText()`方法,传入上下文(通常是Activity或ApplicationContext)、要...
1. **基本的Toast使用** 基本的`Toast`创建非常简单,只需要调用`Toast.makeText()`方法,传入上下文、显示的消息文本以及持续时间。例如: ```java Toast.makeText(context, "这是基本的Toast", Toast.LENGTH_...
5. Toast的使用:复习标准的Toast使用方式,以及如何通过`Toast.makeText()`方法创建和显示基本的Toast。 6. 动画效果:自定义Toast可能会包含动画效果,例如淡入淡出,这涉及对Android动画API的理解。 7. Java...
Toast自定义布局实现炫酷效果
`Toast`对象的使用主要包括基本用法和自定义实现,下面将详细讲解这两个方面。 ### 基本用法 1. **创建Toast对象**:首先,你需要通过`Context`的`makeText()`方法来创建一个`Toast`对象,传入上下文、消息文本和...
### Android Toast 使用详解 在Android开发中,`Toast`是一种非常常见的消息提示方式,它能够以弹出框的形式快速地向用户展示一条简短的消息。本文将基于一份关于`Toast`使用的总结,详细介绍五种不同的`Toast`实现...
在iOS开发中,"Toast"通常指的是短暂显示在屏幕上的提示信息,用于向用户传达一些非阻塞式的通知或信息。这种设计模式源自Android...在iPad这样的大屏幕设备上,合理使用Toast能够有效提高用户交互的清晰度和便捷性。
1. **基本的Toast使用** - 创建`Toast`最简单的方式是通过`Toast.makeText()`方法,传入上下文(Context)、显示的文本和持续时间(短时间SHORT 或 长时间LONG)。 - 示例代码: ```java Toast.makeText(context...
1. **基本的Toast使用**:首先,我们要理解Android系统提供的默认Toast。通过`Toast.makeText()`方法创建一个基本的Toast,传入上下文、消息文本以及持续时间(短时间或长时间)。 ```java Toast toast = Toast....
1. **基本的Toast使用** - `Toast.makeText()`是创建`Toast`对象的基本方法,它接收三个参数:上下文(Context)、要显示的文本(String)和持续时间(int)。持续时间可以是`Toast.LENGTH_SHORT`或`Toast.LENGTH_...