安卓自定义ToastView
上效果:
结构目录:
代码解析:
1、toast.xml
布局很简单就是一个ImageView和TextView横向排列,不解释:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="80dp"
- android:layout_height="30dp"
- android:padding="10dp"
- android:gravity="center"
- android:background="@drawable/toaststyle"
- android:orientation="horizontal">
- <ImageView
- android:layout_width="30dp"
- android:layout_height="30dp"
- android:id="@+id/imageView"/>
- <TextView
- android:id="@+id/message"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:shadowColor="#bbfcd603"
- android:shadowRadius="2.75"
- android:textColor="#ffffff"
- />
- </LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <shape xmlns:android="http://schemas.android.com/apk/res/android">
- <solid android:color="#21211d" />
- <corners android:topLeftRadius="10dp"
- android:topRightRadius="10dp"
- android:bottomRightRadius="10dp"
- android:bottomLeftRadius="10dp"/>
- </shape>
- 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就到这里了。