关于Android 自定义Toast显示风格

本文介绍了如何在Android中创建自定义Toast显示风格。首先,通过XML文件(toast_xml.xml)设计所需的样式。接着,封装一个共通的Toast类以方便在多个活动之间复用。最后,展示如何在Activity中调用这个自定义Toast类。完成这些步骤后,你就能够实现个性化的Toast提示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建一个自己想要显示Toast风格的XML如下代码(toast_xml.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="wrap_content"
    android:background="#87CEFA"
    android:id="@+id/toast_layout_root"
    >

    <TextView
        android:id="@+id/toast_context"
        android:layout_width="match_parent"
        android:layout_height="35dp"
        android:text="书慧研报N条数据更新"
        android:textColor="#3d77c7"
        android:textSize="16sp"
        android:gravity="center"
        android:layout_gravity="center_horizontal"
        android:singleLine="true"
        />

</RelativeLayout>

2.封装一个Toast共同类,当然也可以直接在activity运用,那么我是用共通类,当然只是简单的封装:

package com.datayes.irr.customview;

import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.datayes.irr.R;


/**
 * Created by shuhui.li on 2016/5/18.
 */
public class CustomToast {
    private static CustomToast mCustomToast;
    private Toast mToast;

    private CustomToast(){
    }

    public static CustomToast createToastConfig(){
        if (mCustomToast==null) {
            mCustomToast = new CustomToast();
        }
        return mCustomToast;
    }
    public  void ToastShow(Context context, ViewGroup root, String tvString){
        //加载容器
        View layout =  LayoutInflater.from(context).inflate(R.layout.toast_style, root);
        TextView tv = (TextView) layout.findViewById(R.id.toast_context);
        tv.setText(tvString);
        // 设置Toast
        mToast = new Toast(context);
        //设置Toast的位置
//        float hOffset = AppApplication.getInstance().getResources().getDimension();
        mToast.setGravity(Gravity.TOP|Gravity.FILL_HORIZONTAL,80, 90);
        //设置显示时间
        mToast.setDuration(Toast.LENGTH_SHORT);
        //设置toast为我们需要的样式
        mToast.setView(layout);
        mToast.show();
    }

}

3.创建一个Activity去引用该共通类:

import com.lsh.commonView.CustomToast;  

import android.app.Activity;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.view.ViewGroup;  
import android.widget.Button;  

public class ToastActivity extends Activity {  

   private Button mButton_Toast;
   private CustomToast mCustomToast;

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.toast_buton);  
        mCustomToast= ToastCommom.createToastConfig();  
        mButton_Toast= (Button) findViewById(R.id.btn);  
        mButton_Toast.setOnClickListener(new OnClickListener() {  

            @Override  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                mCustomToast.ToastShow(ToastActivity.this, (ViewGroup)findViewById(R.id.toast_layout_root), "你好,书慧研报N条数据更新N条数据");  
            }  
        });  

    }  

} 

OK,一个简单的自定义toast显示就完成了;当然万变不离其宗,都是类似的做法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值