`

建立属于你自己的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);
LinearLayout toastView = (LinearLayout) toast.getView();
ImageView imageCodeProject = new ImageView(getApplicationContext());
imageCodeProject.setImageResource(R.drawable.icon);
toastView.addView(imageCodeProject, 0);
toast.show();

 

4.完全自定义效果

代码

LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom,
(ViewGroup) findViewById(R.id.llToast));
ImageView image = (ImageView) layout
.findViewById(R.id.tvImageToast);
image.setImageResource(R.drawable.icon);
TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
text.setText("完全自定义Toast");
toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();

 

5.其他线程

代码

new Thread(new Runnable() {
public void run() {
showToast();
}
}).start();

 

 

完整代码

1.Main,java

package com.wjq.toast;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class Main extends Activity implements OnClickListener {
Handler handler = new Handler();

@Override
public void onCreate(Bundle savedInstanceState) {
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);

}

public void showToast() {
handler.post(new Runnable() {

@Override
public void run() {
Toast.makeText(getApplicationContext(), "我来自其他线程!",
Toast.LENGTH_SHORT).show();

}
});
}

@Override
public void onClick(View v) {
Toast toast = null;
switch (v.getId()) {
case R.id.btnSimpleToast:
Toast.makeText(getApplicationContext(), "默认Toast样式",
Toast.LENGTH_SHORT).show();
break;
case R.id.btnSimpleToastWithCustomPosition:
toast = Toast.makeText(getApplicationContext(),
"自定义位置Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
break;
case R.id.btnSimpleToastWithImage:
toast = Toast.makeText(getApplicationContext(),
"带图片的Toast", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
LinearLayout toastView = (LinearLayout) toast.getView();
ImageView imageCodeProject = new ImageView(getApplicationContext());
imageCodeProject.setImageResource(R.drawable.icon);
toastView.addView(imageCodeProject, 0);
toast.show();
break;
case R.id.btnCustomToast:
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom,
(ViewGroup) findViewById(R.id.llToast));
ImageView image = (ImageView) layout
.findViewById(R.id.tvImageToast);
image.setImageResource(R.drawable.icon);
TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
title.setText("Attention");
TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
text.setText("完全自定义Toast");
toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
break;
case R.id.btnRunToastFromOtherThread:
new Thread(new Runnable() {
public void run() {
showToast();
}
}).start();
break;

}

}
}

 

2.main,xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:padding="5dip" android:gravity="center">
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/btnSimpleToast"
android:text="默认"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="自定义显示位置"
android:id="@+id/btnSimpleToastWithCustomPosition"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:id="@+id/btnSimpleToastWithImage"
android:text="带图片"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="完全自定义"
android:id="@+id/btnCustomToast"></Button>
<Button android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="其他线程"
android:id="@+id/btnRunToastFromOtherThread"></Button>

</LinearLayout>

 

3.custom.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:background="#ffffffff" android:orientation="vertical"
android:id="@+id/llToast" >
<TextView
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" />
<LinearLayout
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" >
<ImageView
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:id="@+id/tvImageToast" />
<TextView
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" />
</LinearLayout>
</LinearLayout>

分享到:
评论

相关推荐

    Android Toast 大全

    Android Toast 大全 (五种形式) 建立属于自己的 Toast

    扩散光层析DOT TOAST

    1. **模型建立**:创建生物组织的几何模型,包括不同区域的光学属性。 2. **网格划分**:将模型划分为多个有限元,为FEM求解做准备。 3. **光线模拟**:运用FEM计算每个有限元对近红外光的散射和吸收贡献。 4. **...

    Android Toast用法代码实例

    摘要:Java源码,Android,Toast,Android源码 Android Toast用法代码实例,建立属于你自己的Toast. Toast在Android系统中用于向用户显示一些帮助/提示,本源码是一个较基本的Toast用法实例,还望通过本例能加深您对...

    TOAST软件、模拟GSM网络信道

    这使得开发者可以测试他们的设备如何处理呼叫建立、释放、切换和其他网络操作。 4. **测试用例**:TOAST提供了丰富的预定义测试用例,涵盖了从基本通话到复杂的网络行为,如漫游、功率控制和多用户干扰情况。这些...

    Android-CustomToast:易于使用的Android自定义Toast库

    Android-CustomToast 看这个视频 是一个功能强大且易于使用的Android自定义Toast库。 它在及更高版本上运行。 该库提供了一些预定义的自定义吐司。 您也可以根据需要将烤面包 :high_voltage: 单行代码...建立 Grad

    使用Android binder service维持tcp连接,用Toast显示消息;带python服务器

    Python代码中,你需要定义一个处理客户端连接的回调函数,用来接收和发送数据。 3. **发送和接收消息**:在Android服务中,我们可以使用Socket的getOutputStream()和getInputStream()方法获取输入流和输出流,分别...

    Android中使用文本视图、按钮和Toast完成抽签应用的代码清单.pdf

    这样,我们就建立了对UI组件的引用,为后续的交互做好准备。 `clickGroup`方法是关键。当用户点击按钮时,这个方法会被调用。首先,我们创建了一个`Random`对象`r`用于生成随机数,接着用`nextInt(groupInfo.length...

    TOAST-开源

    **TOAST:信任组织代理系统测试平台** TOAST,全称Trust Organization Agent System Testbed,是一个专注于信任模型评估和比较的开源仿真框架。这个平台专为嵌入在组织系统中的代理设计,旨在帮助开发者和研究人员...

    avocado_toast:Flutter插件,用于完全使用Dart代码生成自定义Android Toast(无通道)

    为什么不建立频道并使用Android的原生吐司呢? 这实际上是一个好主意。 创建频道没有错,尤其是在该小部件旨在模拟仅在Android设备上发现的功能时。 但是,我想创建一些与本机层的连接受限的东西, .dart dex方法...

    Eclipse编写的Android复选框应用实例

    此外,你还可以在复选框之间建立关联,实现多选功能,或者将复选框的状态保存到 SharedPreferences 中,以便在下次打开应用时恢复。 在“NewApp004”项目中,可能包含了完成上述步骤的所有必要文件和代码,包括...

    toast_docs:https

    "toast_docs:https"这个标题可能是指一个关于HTTPS的教程或文档集合,旨在帮助用户理解并正确使用HTTPS...通过深入学习"toast_docs"文档,可以提升对网络安全的理解,更好地保护用户数据,同时提高网站的可信度和性能。

    熟悉Android开发环境-建立我的第一个App(青岛理工大学2018实验报告)

    在本实验报告中,青岛理工大学的学生们通过一系列步骤学习了如何使用Android Studio建立并运行他们的第一个应用程序——MyFirstApp。这个实验旨在让学生熟悉Android应用程序的构建过程和Android Studio的基本操作。 ...

    vue制作toast组件npm包示例代码

    建立一个空文件夹, 然后直接终端运行 npm init 建立完之后会生成一个 package.json 文件,内容如下 注意:name是之后要发的npm包的名字 不要重名,建议去npm先搜一下有没有在取 接下来对 package.json 文件添加所...

    show-toast-onclick:如何显示具有100行代码的Toast onclick事件

    建立网站布局 在网站上构建组件 好处 明晰 易于重用 帮助整个团队轻松合作 模块化,不必担心一个类CSS会影响另一个类CSS 缺点 长类名 有人认为这很糟糕 什么时候采用BEM正确? 计划许多成员 界面上有许多页面或...

    react-native-saas:使用Redux,Redux-Saga,React本机Redux Toast,Immer,react-native-side-menu,React本机异步存储,react-native-iphone-x-helper和React本机矢量图标的应用程序,它们消耗了Node.js的功能-SaaS API

    使用Redux,Redux-Saga,React Native Redux Toast,Immer,react-native-side-menu,React Native Async Storage,react-native-iphone-x-helper和React Native Vector Icons消耗 API资源的应用程序 。 指数 建立...

    Android Studio Menu选择菜单的建立方法

    Android Studio Menu选择菜单的建立方法 在 Android Studio 中,Menu 选择菜单的建立是一个非常重要的步骤,因为它能够帮助开发者管理各种选项,提高用户体验。下面,我们将详细介绍 Menu 选择菜单的建立方法。 一...

    Android开发教程

    在Android开发领域,初学者通常会遇到很多挑战,但一旦掌握了基本概念,就能逐步建立起自己的应用。"Android开发教程"这个主题涵盖了从安装Android开发环境到编写第一行代码的整个过程,是为那些想要踏入安卓编程...

    xUtils3 demo

    如果你只需要一个简单的版本: @Event(value = R.id.btn_test_baidu2) private void onTestBaidu2Click(View view) { RequestParams params = new RequestParams("https://www.baidu.com/s"); params....

    ngx-simple-toasts:简单的Toast的Angular库

    建立运行ng build来构建项目。 构建工件将存储在dist/目录中。 使用--prod标志进行生产构建。运行单元测试运行ng test通过执行单元测试。运行端到端测试运行ng e2e以通过执行端到端测试。进一步的帮助要获得有关...

    代码建立Button

    Toast.makeText(MainActivity.this, "按钮被点击了", Toast.LENGTH_SHORT).show(); } }); ``` 使用代码创建Button的好处包括: - **灵活性**:可以在运行时动态创建和修改Button,适应不同的条件和需求。 - **...

Global site tag (gtag.js) - Google Analytics