自定义Toast样式

好长时间没写博客了,刚换个新工作没几天,今天公司小组要求写一个自定义的Toast,工作交给我了,其实并不难,几分钟搞定,把代码发出来当做记录一下把。废话不多说,上效果:

自定义Toast样式_第1张图片

结构目录:

自定义Toast样式_第2张图片

代码解析:

1、toast.xml

布局很简单就是一个ImageView和TextView横向排列,不解释:




    

    
2、toaststyle.xml



    
    
3、CustomToast.java开始我们的封装代码

package com.example.administrator.customview;

import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

/**
 * Created by Administrator on 2016/6/16 0016.
 */
public class CustomToast {
    private static TextView mTextView;
    private static ImageView mImageView;

    public static void showToast(Context context, String message) {
        //加载Toast布局
        View toastRoot = LayoutInflater.from(context).inflate(R.layout.toast, null);
        //初始化布局控件
        mTextView = (TextView) toastRoot.findViewById(R.id.message);
        mImageView = (ImageView) toastRoot.findViewById(R.id.imageView);
        //为控件设置属性
        mTextView.setText(message);
        mImageView.setImageResource(R.mipmap.ic_launcher);
        //Toast的初始化
        Toast toastStart = new Toast(context);
        //获取屏幕高度
        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        int height = wm.getDefaultDisplay().getHeight();
        //Toast的Y坐标是屏幕高度的1/3,不会出现不适配的问题
        toastStart.setGravity(Gravity.TOP, 0, height / 3);
        toastStart.setDuration(Toast.LENGTH_LONG);
        toastStart.setView(toastRoot);
        toastStart.show();
    }
}
代码很详细,不用多解释,这里只是一个简单的例子,大家感兴趣的可以自己添加喜欢的设计,顺便说一下,这里很多属性都可以自己抽出来的当成变量的,大家可以根据自己的风格封装乘工具类使用。

这里都是一些纯粹的代码,没有涉及到一些其他的资源文件,大家copy过来就直接用,这里就不上传例子了,感觉copy这用更简单。好了,简单的Demo就到这里了。



你可能感兴趣的:(Android)