当前位置: 首页 > 编程笔记 >

基于自定义Toast全面解析

欧阳玺
2023-03-14
本文向大家介绍基于自定义Toast全面解析,包括了基于自定义Toast全面解析的使用技巧和注意事项,需要的朋友参考一下

Toast一般用来显示一行文字,用法比较固定:

Toast.makeText(Context context,String message,int duration);

但是有时候想用toast 来显示复杂的view甚至是带有图片的view时这时候就要用到自定义的Toast,自定义Toast主要用到一下几个方法如图:

1.setView()方法用来显示用户自定义的view.

2. setGravity()用来确定Toast显示的位置.

3.setDuration()用来设置Toast显示的时间长短,只有两种选择,LENGTH_SHORT,LENGTH_LONG,都是int型。

4.setText()用来显示一段文字,但是要注意的时setText()与setView(),不能同时使用不然就会出错。

下面通过一个完整的代码来看看如何实现一个自定义的Toast:

Toast_view.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical"
  android:gravity="center"
>
  <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/tianjia_p"
    android:layout_gravity="center"
    />
  <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="hello world"
    android:layout_gravity="center_horizontal"
    android:textSize="20dp"
    />
</LinearLayout>

Activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  >
  <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/myButton"
    android:text="button"
    />
</LinearLayout>

ToastUtil:

public class ToastUtil {
  private static Toast toast;
  public static void showToast(int duration,View mview,Context context)
  {
    if (toast==null) {
      toast = new Toast(context);
    }
    toast.setDuration(duration);
    toast.setView(mview);
    toast.show();
  }
}

MainActivity:

public class MainActivity extends AppCompatActivity {
private View toast_view;
  private Button button;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LayoutInflater inflater=LayoutInflater.from(this);
    toast_view =inflater.inflate(R.layout.toast_view,null);
    button=(Button)findViewById(R.id.myButton);
    button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        ToastUtil.showToast(Toast.LENGTH_SHORT,toast_view,getApplicationContext());
      }
    });
  }
}

上面的ToastUtil工具类 写的不好,大家可以自己改写自己的ToastUtil类。

以上这篇基于自定义Toast全面解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Android自定义Toast之WindowManager,包括了Android自定义Toast之WindowManager的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了Android自定义Toast之WindowManager,供大家参考,具体内容如下 Toast:WindowManager 三个重要的API: public void addView(View view

  • 本文向大家介绍基于Spring开发之自定义标签及其解析,包括了基于Spring开发之自定义标签及其解析的使用技巧和注意事项,需要的朋友参考一下 Spring框架是现在Java最流行的开源框架之一,并且Spring下的各种子项目对某些特定问题的解决有很好的支持。因此,如果能在Spring 基础上实现搭建自己的一套框架(基于XML配置)。就必然需要实现一些自定义的标签,主要是方便使用我们框架的人能够快

  • 本文向大家介绍基于Layer+jQuery的自定义弹框,包括了基于Layer+jQuery的自定义弹框的使用技巧和注意事项,需要的朋友参考一下 目的:XXXX项目中,很多的弹窗是利用freemarker的网页标签追加的形式实现的,网页弹框只是将隐藏的div显示出来,这样会使网页在预加载时速度变慢,增加页面加载和响应时间 解决方法如下:<已分中心管理的添加分中心弹框实现机制为例> 1.弹框页面部分的

  • 我想在spring验证器中创建基于条件的验证。我有一个UserDTO类,因为有两个DTO类带有注释。 如果我传递isPrimary,那么它应该只验证primaryDTO bean,而忽略secondoryDTO验证。 请引导。 谢谢

  • 本文向大家介绍基于JavaScript实现自定义滚动条,包括了基于JavaScript实现自定义滚动条的使用技巧和注意事项,需要的朋友参考一下 可直接使用的js滚动条,先看看效果图: 代码如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我在用任何逻辑建立我的模型。我创建了一个带有自定义发行版的代理群体,在其中我放入了一个选项列表。我提出了5个选项(类别):A、B、C、D和E,每个选项都有其各自的百分比。我想做的是代理去两个不同的服务的基础上的选项(类别)。我在模型中有一个selectOutput,但我不知道该把什么作为条件来实现这一点,也就是说,如果代理是a或B,那么我希望它转到service_1,如果它是C、D或E,我希望它们