超简单自定义Toast
来源:互联网 发布:盈利宝 知乎 编辑:程序博客网 时间:2024/04/29 02:07
Android 自带的Toast 样式太过单一,我们怎么样自定义Toast满足我们的需求呢,比如下载文件失败,我们需要图片加文字的提示:
如上图所示,我们需要重写Toast:
package com.example.myapplication;import android.content.Context;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;/** * Created by Administrator on 2016/7/22. */public class CustomToast { private Toast toast; public CustomToast(){ } /** * 显示Toast * @param context * @param root * @param tvString */ public void ToastShow(Context context, ViewGroup root, String tvString){ //加载Toast布局 View layout = LayoutInflater.from(context).inflate(R.layout.activity_toast,root,false); TextView text = (TextView) layout.findViewById(R.id.text); ImageView mImageView = (ImageView) layout.findViewById(R.id.iv); mImageView.setBackgroundResource(R.mipmap.break_heart); text.setText(tvString); //text.setTextColor(R.color.aqua); toast = new Toast(context); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); //设到Toast里 toast.setView(layout); toast.show(); }}
布局文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="400dp" android:layout_height="match_parent" android:orientation="horizontal" android:padding="8dp" android:background="#DAAA" android:id="@+id/toast_layout_root"> <LinearLayout android:layout_width="200dp" android:gravity="center" android:layout_height="wrap_content"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="8dp" android:layout_gravity="center_vertical" android:id="@+id/iv" /> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center_vertical" android:textColor="#FFF" /> </LinearLayout></LinearLayout>
弹出Toast代码:
new CustomToast().ToastShow(MainActivity.this, (ViewGroup)findViewById(R.id.toast_layout_root);
自定义已基本完成。但是这样每次用Toast,都要新建对象,我们修改下:
package com.example.myapplication;import android.content.Context;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;/** * Created by Administrator on 2016/7/22. */public class CustomToast { private Toast toast; public static CustomToast customToast ; private CustomToast(){ } public static CustomToast getInstance() { if(customToast == null) { customToast = new CustomToast (); } return customToast ; } /** * 显示Toast * @param context * @param root * @param tvString */ public void ToastShow(Context context, ViewGroup root, String tvString){ //加载Toast布局 View layout = LayoutInflater.from(context).inflate(R.layout.activity_toast,root,false); TextView text = (TextView) layout.findViewById(R.id.text); ImageView mImageView = (ImageView) layout.findViewById(R.id.iv); mImageView.setBackgroundResource(R.mipmap.break_heart); text.setText(tvString); //text.setTextColor(R.color.aqua); toast = new Toast(context); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); //设到Toast里 toast.setView(layout); toast.show(); }}
ok了。
0 0
- 超简单自定义Toast
- 超简单实现Android自定义Toast(附源码)
- 超简单实现Android自定义Toast(附源码)
- 超简单实现Android自定义Toast(附源码)
- 简单自定义Toast
- 简单的自定义Toast
- 简单自定义Toast
- 简单的自定义Toast
- Toast工具类及简单自定义Toast
- 自定义Toast就是这么简单
- android toast 简单自定义 && github toasty
- 微信小程序自定义toast的简单实现
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义Toast
- 自定义toast
- 自定义toast
- DS18B20显示温度并报警
- Java IO流(二)_day21
- 爬虫抓取
- Android优化-Zipalign
- Java 并发编程:核心理论
- 超简单自定义Toast
- 网络最大流-ISAP算法详解与模板
- Makefile经典教程(掌握这些足够)
- hdu 3363
- css常用命名
- POJ 2553 强联通分量
- Java NIO使用及原理分析(二)
- Pixhawk windows开发环境安装
- HDU 3368--搜索