android 仿toast,Android自定义仿ios的toast提示(三)

仿ios的自定义toast。

说明:

一,使用的Androidstudio版本为3.4

二,使用说明。直接增加依赖。然后看本文第二大条。

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

dependencies {

implementation 'com.github.mamumu:mmToast:1.0'

}

展示效果:

17a1a22b267e

https://upload-images.jianshu.io/upload_images/14906070-1057492c91998df2.gif?imageMogr2/auto-orient/strip

现在正式开始

1,核心activity和对应的布局文件。

package com.mumu.toast;

import android.content.Context;

import android.view.Gravity;

import android.view.LayoutInflater;

import android.view.View;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;

/**

* @author : zlf

* date : 2019-04-18

* github : https://github.com/mamumu

* blog : https://www.jianshu.com/u/281e9668a5a6

*/

public class MMToast extends Toast {

public MMToast(Context context) {

super(context);

}

public static class Builder {

private Context context;

private String message;

private boolean isSuccess = true;

public Builder(Context context) {

this.context = context;

}

/**

* 设置toast的内容

*

* @param message

* @return

*/

public Builder setMessage(String message) {

this.message = message;

return this;

}

/**

* 是否是显示成功的toast,true:成功 false:失败

*

* @param isSuccess

* @return

*/

public Builder setSuccess(boolean isSuccess) {

this.isSuccess = isSuccess;

return this;

}

public MMToast create() {

LayoutInflater inflater = LayoutInflater.from(context);

View view = inflater.inflate(R.layout.dialog_toast, null);

MMToast mmToast = new MMToast(context);

TextView msgText = view.findViewById(R.id.t_text);

ImageView imageView = view.findViewById(R.id.t_image);

if (!message.isEmpty()) {

msgText.setText(message);

}

if (isSuccess) {

imageView.setImageResource(R.drawable.ic_success);

} else {

imageView.setImageResource(R.drawable.ic_failure);

}

mmToast.setView(view);

mmToast.setDuration(Toast.LENGTH_SHORT);

mmToast.setGravity(Gravity.CENTER,0,0);

return mmToast;

}

}

}

android:id="@+id/dialog_loading_view"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center"

android:orientation="vertical">

android:layout_width="wrap_content"

android:layout_height="70dp"

android:background="@drawable/shape_bg"

android:gravity="center"

android:orientation="vertical"

android:minWidth="80dp"

android:paddingLeft="5dp"

android:paddingTop="5dp"

android:paddingRight="5dp"

android:paddingBottom="5dp">

android:id="@+id/t_image"

android:layout_width="30dp"

android:layout_height="30dp" />

android:id="@+id/t_text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="5dp"

android:text="加载成功"

android:textColor="#ffffff"

android:textSize="14sp" />

2,如何使用。一,直接在自己的BaseActivity中增加showToastSuccess()和showToastFailure()方法。如下第一段代码所示。二,MainActivity继承BaseActivity,直接使用对应的方法。

package com.mumu.mmtoast.base;

import android.os.Bundle;

import android.support.annotation.Nullable;

import android.support.v7.app.AppCompatActivity;

import com.mumu.toast.MMToast;

/**

* @author : zlf

* date : 2019/4/17

* github : https://github.com/mamumu

* blog : https://www.jianshu.com/u/281e9668a5a6

*/

public class BaseActivity extends AppCompatActivity {

private MMToast mmToast;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

@Override

protected void onDestroy() {

super.onDestroy();

}

@Override

protected void onPause() {

super.onPause();

}

@Override

protected void onResume() {

super.onResume();

}

protected void showToastSuccess(String msg) {

if (mmToast == null) {

MMToast.Builder builder=new MMToast.Builder(this)

.setMessage(msg)

.setSuccess(true);

mmToast=builder.create();

}else {

mmToast.cancel();

MMToast.Builder builder=new MMToast.Builder(this)

.setMessage(msg)

.setSuccess(true);

mmToast=builder.create();

}

mmToast.show();

}

protected void showToastFailure(String msg) {

if (mmToast == null) {

MMToast.Builder builder=new MMToast.Builder(this)

.setMessage(msg)

.setSuccess(false);

mmToast=builder.create();

}else {

mmToast.cancel();

MMToast.Builder builder=new MMToast.Builder(this)

.setMessage(msg)

.setSuccess(false);

mmToast=builder.create();

}

mmToast.show();

}

}

package com.mumu.mmtoast;

import android.os.Bundle;

import android.view.View;

import com.mumu.mmtoast.base.BaseActivity;

import butterknife.ButterKnife;

import butterknife.OnClick;

public class MainActivity extends BaseActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

ButterKnife.bind(this);

initView();

}

private void initView() {

}

@OnClick({R.id.button3, R.id.button4})

public void onViewClicked(View view) {

switch (view.getId()) {

case R.id.button3:

showToastSuccess("加载成功");

break;

case R.id.button4:

showToastFailure("加载失败");

break;

}

}

}

3,对应github地址

4,我后面将dialog(一),loading(二)和toast(三)做了统一封装链接如下,推荐使用:

如果有发现错误欢迎指正我及时修改,如果有好的建议欢迎留言。如果觉得对你有帮助欢迎给小星星,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值