Android Toast进阶
来源:互联网 发布:中国移动暂停数据流量 编辑:程序博客网 时间:2024/06/14 08:33
上一节提到了最基本的Toast用法,用法是十分简单的
这一篇,来说下剩下的Toast怎么用
------自定义位置的Toast
------带图片的Toast
------自定义Toast
一、自定义位置的Toast
这个实现的思路很简单,主要是应用Toast的一个方法
Toast.setGravity(intgravity,int xOffset,int yOffset)
具体代码如下:
布局xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.toast_02.MainActivity" tools:ignore="MergeRootFrame" > <Button android:id="@+id/btn_ToastPoi" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/ToastPoi" /></LinearLayout>
Java代码:
package com.example.toast_02;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//自定义Toast位置findViewById(R.id.btn_ToastPoi).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast toast =Toast.makeText(getApplicationContext(), "自定义Toast位置", Toast.LENGTH_LONG);toast.setGravity(Gravity.CENTER, 0 , 0);toast.show();}});}}
运行结果:
二.带图片的Toast
这个主要通过一个toast.getView()方法来实现,这个方法返回一个View对象,强转为一个布局这里为LinearLayout,然后在创建一个ImageView对象,最后添加到布局中,最后在调用toast.show()来显示Toast
具体代码如下:
布局xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.toast_02.MainActivity" tools:ignore="MergeRootFrame" > <Button android:id="@+id/btn_ToastWithPic" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/ToastWithPic" /></LinearLayout>Java代码:
package com.example.toast_02;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//带图片的ToastfindViewById(R.id.btn_ToastWithPic).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Toast toast =Toast.makeText(getApplicationContext(), "带图片的Toast", Toast.LENGTH_LONG);//通过Toast创建一个LinearLayoutLinearLayout layout = (LinearLayout) toast.getView();//创建一个ImageView对象,并添加到LinearLayout中ImageView imageView = new ImageView(MainActivity.this);imageView.setImageResource(R.drawable.ic_launcher);//添加layout.addView(imageView);//显示Toasttoast.show();}});}}
运行结果:
三.自定义的Toast
自定义的Toast首先要在layout文件中添加一个布局文件,然后在代码中用
LatoutInflater进行加载布局文件,最主要的就是这个方法很重要toast.setView()
来实现布局文件的加载。
具体代码如下:
布局xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.toast_02.MainActivity" tools:ignore="MergeRootFrame" > <Button android:id="@+id/btn_ToastBySelf" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/ToastBySelf" /></LinearLayout>
自定义的Toast xml布局文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="32dp" android:contentDescription="@string/Img" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/imageView1" android:layout_centerHorizontal="true" android:text="@string/hello_world" android:textAppearance="?android:attr/textAppearanceLarge" /></RelativeLayout>
package com.example.toast_02;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.LinearLayout;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//自定义ToastfindViewById(R.id.btn_ToastBySelf).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//自定义Toast主要是利用LayoutInflater来实现LayoutInflater layoutInflater = getLayoutInflater();//加载一个布局文件,自定义的布局文件View view = layoutInflater.inflate(R.layout.layout_toast,null);//ToastToast toast = new Toast(getApplicationContext());//设置Toast显示时长toast.setDuration(Toast.LENGTH_LONG);//设置Toast的View对象toast.setView(view);//显示Toasttoast.show();}});}}
运行结果:
0 0
- Android Toast进阶
- Android Toast进阶——自定义Toast
- Android进阶篇-Toast自定义显示时间
- Android进阶篇-Toast自定义显示时间
- Android进阶之Toast重复显示解决方法
- Toast-进阶
- Toast的进阶使用
- 我的Android进阶之旅------>android Toast大全(五种情形)建立属于你自己的Toast
- 我的Android进阶之旅------>android Toast大全(五种情形)建立属于你自己的Toast
- android Toast
- android Toast
- android Toast
- Android--Toast
- android Toast
- Android Toast
- android Toast
- Android Toast
- Android Toast
- 蓝桥杯 购物券消费方案 递归暴力 解题报告
- 欢迎使用CSDN-markdown编辑器
- 黑马程序员_类加载器的委托机制
- 学院比赛--------C
- JavaScript--JavaScript 输出
- Android Toast进阶
- 面试题(循环链表)
- ABAP基础-程序优化及响应速度之LOOP
- Android应用程序签名详解
- Android-Studio 缓存文件夹配置
- 1183 守形数
- 双列集合Map简介
- 企业应用架构学习一
- 【BZOJ 2054】 疯狂的馒头