任意位置任意時長Toast

2021-07-05 05:42:37 字數 2844 閱讀 5811

在設計師眼裡,想在**彈個提示框就可以在**彈乙個,想顯示多久就顯示多久。理想很豐滿,現實太骨感,我們的toast只能在螢幕中上,正中間,中下方,不能顯示在某一控制項下面,換背影顏色字型大小什麼的也不是很方便,時間也是不可控的,只有toast.

length_long,toast.

length_short。設計師怒了,我設計得這麼好的介面,你特麼居然實現得這麼搓,吧啦吧啦。即然系統自帶的不行,那我們自己實現乙個吧,這就是程式設計師的使命。想了挺多方法,最終選了popupwindow來實現。

不多說,上**

/**

* 高階toast功能,專治設計師到處toast

* @param context

* @param msg

* @param view //在哪個view下面顯示這個toast

* @param duration //顯示時長

*/public static void showtoastdialog(context context,final string msg,view view,int duration)

/***

* @param xoff //x方向偏移

* @param yoff //y方向偏移

*/public static void showtoastdialog(context context,final string msg,view view,int xoff,int yoff,int duration)

}, duration);

}

對應乙個toast_view,可以自定義,我這邊弄了乙個簡單的

<?xml version="1.0" encoding="utf-8"?>

背景也可以自己寫乙個,我這個設定了乙個透明度,看著跟設計師的挺像的

<?xml version="1.0" encoding="utf-8"?>

完成了,接下來就是使用了,到處使用,一行**搞定

dialogutil.showtoastdialog(mactivity, "測試一下效果,保佑2222", amountet,-80,150, 5000);

完成,笑乙個。

過了幾天了,發現設計又異想天開了,又想隨時換背景顏色,又想換位置換控制項大小,又想在提示文字左邊加個圖示,哎呀我去,換吧,再封裝個更完善的類來吧

import android.content.context;

import android.os.handler;

import android.view.layoutinflater;

import android.view.view;

import android.view.windowmanager.layoutparams;

import android.widget.imageview;

import android.widget.popupwindow;

import android.widget.textview;

public class mytoast

public mytoast(context context)

public void setbackground(int background)

public void setsize(int width,int height)

public void changetextcolor(int color)

public void changetextsize(int size)

public void changetextmsg(int size,int color,string msg)

public void changeimg(int img)

private void inittoast()

public void show(view view,int duration)

public void show(view view,int xoff,int yoff,int duration)

}, duration); }

/*** 高階toast功能,專治設計師到處toast

* @param context

* @param msg

* @param view //在哪個view下面顯示這個toast

* @param duration //顯示時長

*/public static void showtoastdialog(context context,final string msg,view view,int duration)

public static void showtoastdialog(context context,final string msg,view view,int xoff,int yoff,int duration)

/***

* @param xoff //x方向偏移

* @param yoff //y方向偏移

*/public static void showtoastdialog(context context,final string msg,view view,int xoff,int yoff,int duration,int background)

}, duration);

}}

想直接用之前的靜態方法也行,想變得多一點就用new,隨時控制位置顏色大小圖示什麼的。要顯示的時候呼叫show方法即可

注意:記得在activity onpause的時候dismiss掉哦

工作備忘 設定任意控制項任意位置的圓角

關鍵 如下 self exitbtn layer.maskstobounds yes cashapelayer masklayer cashapelayer layer masklayer.path uibezierpath bezierpathwithroundedrect self exitbt...

Tomcat 引用任意位置專案

最近因為專案很大每次做了大型更新後再部署到tomcat會花去很多時間,因此找同事問了這種tomcat引用專案的方法,把路徑指到專案後就少去了再部署到tomcat這一步的時間。需要準備檔案 1.tomcat目錄如 d tomcat5.5 conf catalina localhost 下的配置檔案 配...

WPF 獲取任意元素的位置

原文 wpf 獲取任意元素的位置 如果布局在grid中 方法一 stackpanel為子元素,grid為父元素 point point stackpanel.translatepoint new point 0,0 uielement grid 方法二 stackpanel為子元素,grid為父元素...