Android 更改 Toast 的默认位置方法

Android中Toast的认位置在屏幕靠近底部的位置,这个认位置有时候并不合适。比如页面内容较少时,内容一般集中在屏幕上半部分,用户的注意力也集中在屏幕上半部分,认位置的Toast用户可能没有注意到。还有可能是认位置的Toast被用户的手挡住了。实践中感觉将Toast显示在屏幕的中部或中上部会比较好。如何修改Toast的认位置呢?下面做一个简单的例子来演示一下。

先上截图:

布局文件activity_toast.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >

  <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="onClickDefaultToast"
    android:text="点击显示认位置的Toast" />

  <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="onClickCenterToast"
    android:text="点击显示居中位置的Toast" />


  <Button
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="onClickTopToast"
    android:text="点击显示居中上部位置的Toast" />

</LinearLayout>

后台ToastActivity.java代码如下:

package chengyujia.demo.aty;

import android.os.Bundle;
import android.view.display;
import android.view.Gravity;
import android.view.View;
import android.widget.Toast;
import chengyujia.demo.R;

public class ToastActivity extends BaseActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_toast);
  }

  public void onClickDefaultToast(View v) {
    Toast.makeText(this,"认位置的Toast",Toast.LENGTH_LONG).show();
  }

  public void onClickCenterToast(View v) {
    Toast toast = Toast.makeText(this,"居中位置的Toast",Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER,0);
    toast.show();
  }

  public void onClickTopToast(View v) {
    display display = getwindowManager().getDefaultdisplay();
    // 获取屏幕高度
    int height = display.getHeight();
    Toast toast = Toast.makeText(this,"居中上部位置的Toast",Toast.LENGTH_LONG);
    // 这里给了一个1/4屏幕高度的y轴偏移量
    toast.setGravity(Gravity.TOP,height / 4);
    toast.show();
  }
}

以上这篇Android 更改 Toast 的认位置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...