1. 程式人生 > >自定義Toast(圖片+文字+全屏)

自定義Toast(圖片+文字+全屏)

上程式碼:

public class CustomToast {

    public static void ToastWithImageShort(Context context, int  imageRes, CharSequence text){
        //建立一個Toast提示訊息
        Toast toast = Toast.makeText(context,null, Toast.LENGTH_SHORT);
        //設定Toast提示訊息在螢幕上的位置
        toast.setGravity(Gravity.FILL, 0, 0);  //必須要FILL,否則無法顯示全屏
        //TODO 自定義的圖片和文字
        View view = LinearLayout.inflate(context, R.layout.layout_dormitory_submit_check_view, null);
        ImageView imageView = (ImageView) view.findViewById(R.id.iv_custom);
        TextView textView = (TextView)view.findViewById(R.id.tv_custom);
        if(imageRes != 0)
            imageView.setImageDrawable(context.getResources().getDrawable(imageRes));
        textView.setText(text);
        //建立一個LineLayout容器
        LinearLayout toastView = (LinearLayout) toast.getView();
        LinearLayout.LayoutParams vlp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        vlp.setMargins(0,0,0,0);
        view.setLayoutParams(vlp);
        toastView.setBackgroundColor(context.getResources().getColor(R.color.transparent_slight));
        toastView.addView(view);
        toast.show();
    }

    public static void ToastWithImageLong(Context context,  int  imageRes, CharSequence text){
        //建立一個Toast提示訊息
        Toast toast = Toast.makeText(context,null, Toast.LENGTH_LONG);
        //設定Toast提示訊息在螢幕上的位置
        toast.setGravity(Gravity.FILL, 0, 0);
        //TODO 自定義的圖片和文字
        View view = LinearLayout.inflate(context, R.layout.layout_dormitory_submit_check_view, null);
        ImageView imageView = (ImageView) view.findViewById(R.id.iv_custom);
        TextView textView = (TextView)view.findViewById(R.id.tv_custom);
        if(imageRes != 0)
            imageView.setImageDrawable(context.getResources().getDrawable(imageRes));
        textView.setText(text);
        //建立一個LineLayout容器
        LinearLayout toastView = (LinearLayout) toast.getView();
        LinearLayout.LayoutParams vlp = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
        vlp.setMargins(0,0,0,0);
        view.setLayoutParams(vlp);
        toastView.setBackgroundColor(context.getResources().getColor(R.color.transparent_slight));
        toastView.addView(view);
        toast.show();
    }
}

注意這裡一定要用toast.setGravity(Gravity.FILL, 0, 0);否則將無法全屏顯示。

xml如下:R.layout.layout_dormitory_submit_check_view

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="50dp"
        android:paddingRight="50dp"
        android:orientation="vertical"
        android:background="@drawable/submit_check_shape"
        android:gravity="center">
        <ImageView
            android:id="@+id/iv_custom"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_submit_check"
            android:layout_marginTop="20dp"/>
        <TextView
            android:id="@+id/tv_custom"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="test"
            android:textSize="18dp"
            android:textColor="@color/white_ffffff"/>
    </LinearLayout>


</LinearLayout>

可以自己設計View傳入,這裡就不說那麼多了,這個效果是帶外圍陰影和圖片的Toast,效果圖展示在評論咯。

相關推薦

定義Toast(圖片+文字+)

上程式碼: public class CustomToast { public static void ToastWithImageShort(Context context, int imageRes, CharSequence text){

定義Toast 顯示文字圖片

Toast用於提示當前應用的狀態資訊,如網路連線狀態等,一般是顯示一段文字,也可以定製自己的Toast。下面舉例說明: public class MyActivity extends Activity { /** Called when the activity is

Android定義View,實現滑動的DrawerLayout

    對與DrawerLayout大家應該用過,是Google官方推出的一種抽屜式導航控制元件。開啟左右兩邊選單的方式是從手機屏 幕的邊緣處滑動來觸發,不過總有些**的需求要讓它可以全屏滑動觸發選單,網上也有一些解決辦法,無非就是用 setDrawerLeftE

背景圖片居中適應顯示

center posit attach mage back 背景圖 自適應 rep sse .bg{ background-size: cover;background-image:url(../assets/images/sunshine.png);background-

swift新手進階30天一 定義圖片文字的UIButton的幾種方式

目前很多app首頁功能區都類似工具欄上圖示加下文字的方式來自定義按鈕。當然,我們也可以用兩個控制元件實現,但是,提升不了我們的逼格。接下來就介紹幾種自定義這種上圖示下文字的按鈕的幾種方式。先上圖。 ![首頁自定義按鈕.png](https://img-blog.

swift 定義UIButton 圖片在上 文字在下

1  首先繼承UIButton 2 實現imageRectForContentRect  titleRectForContentRect // 內部圖片的frame - (CGRect)image

UITableViewCell定義右邊的文字以及更改左邊圖片的大小

很多時候,uitabeleviewcell自身的功能已經滿足我們專案中很多cell的需要,因此我們不需要自定義一個cell增加不必要的麻煩,但是隨著ios7之後,很多程式的主流圖片都是圓形,今天我們就來看一看如何不用自定義cell就能更改cell左邊圖片大小。

Android基礎:定義圖片Toast

由於Android系統的預設Toast比較單調,而且不同手機型號Toast的顯示也大一樣。如下圖所示,有些Toast需要能夠顯示圖片,還要有一堆的透明度,而且顯示位置也有要求,所以,為了滿足專案的需求,我們需要用到自定義的Toast。 一、Toast佈局檔案 自定義To

定義ImageSpan 實現文字圖片的居中對齊

public class SpannableStringAndImageSpanActivity extends AppCompatActivity { @Override protected void onCreate(Bundle s

解決讓圖片寬度高度按比例適應填充

在專案中要根據在服務端生成的一張海報填充在imagview中。返回圖片寬高為750*2500。但是在手機上發現寬度不能充滿全屏。設定scaleType後圖片長度會被擷取或者長度被壓縮。然後就自定義一個imagview來顯示,完美解決。重寫onMeasure,on

微信小程序之定義toast彈窗

pla cnblogs display pan false 返回 頁面 文件 src 微信小程序裏面的自帶彈窗icon只有兩種,success和loading。有時候用戶輸入錯誤的時候想加入一個提醒圖標,也可以使用wx.showToast中的image來添加圖片達到使用自定

定義toast實現

web javascript html5 toast ys_toast.css.ys-toast{ position:fixed; left:0; right:0; top:0; bottom:0; z-index: 999999; } .ys-toast>em{ pos

定義Toast的出現樣式

-m rom 參數 展示 text set 位置 from 方法 使用下面的方法來獲取一個Toast對象: private Toast showShortToast() { if (toast == null) { toast = new Toast(this); //傳

關於Unity實現定義多邊形圖片效果

image 物體 length inspector 設置 this err eve mes 關於Unity實現自定義多邊形圖片效果 1.創建RawImageEditor編輯器拓展腳本(放在工程中Editor文件夾下,沒有則創建) 1 /*****************

博客園定義背景圖片

文章 20px san 設置 com width bold span .com 自從註冊了博客園,整個大學就變得有趣起來了。 每天發發文章,看看他人故事。不亦樂乎。 園裏個個都是人才,說話又好聽,我超喜歡這裏的! 我一開始也是用園裏的主題,但是後來自己找到了很好看的圖片

Android 定義WaveView 圖片隨著WaveView 滑動

xml佈局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:background="#f00" android:layout_width="match_parent"

Echarts 定義legend圖片,修改點選之後的顏色圖解

第一個問題:echarts 可以自定義圖例的圖示,百度上很多回答都是引用的相對路徑,但是不知道為啥,我的vue專案就是引用不顯示,在network裡面找不到相應圖片 後來我想了個法子,就是先獲取到這個圖片,然後複製它的dataURL 也就是在網頁上解析之後的圖片路徑,就能正常顯示了——————至於原因,em

定義View圖片浮動

一:首先自定義View:建立類 public class WaveView extends View { private static final String TAG = "WaveView"; private float fai = 0; private Paint

ionic3 定義toast樣式

檔案目錄結構: 在使用ionic3來寫toast效果時,會有各種各樣對toast樣式的需求, 在全域性的app.scss中新增以下內容 備註:(這裡的樣式也可以放置在元件的scss檔案中,但是是獨立開來的,不要巢狀在元件的page-xxx中去) //吐司顏色、大小 .box

定義Toast工具類

public class CustomToast { private static WindowManager mWM; //引數1:上下文 引數二:自定義控制元件View public static void showMyToast (final Context