1. 程式人生 > >android 自定義Toast顯示風格

android 自定義Toast顯示風格

1.建立一個自己想要顯示Toast風格的XML如下程式碼(toast_xml.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="horizontal" 
    android:padding="8dp"              
    android:background="#DAAA"
    android:id="@+id/toast_layout_root">
    
<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="8dp"
    android:id="@+id/iv"
    />
<TextView android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textColor="#FFF"
    />
</LinearLayout>

2.封裝一個Toast共同類,當然也可以直接在activity運用,那麼我是用共通類,當然只是簡單的封裝:

import com.sbr.activity.R;

import android.annotation.SuppressLint;
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

@SuppressLint("ResourceAsColor")
public class ToastCommom {
	
	private static ToastCommom toastCommom;
	
	private Toast toast;
	
	private ToastCommom(){
	}
	
	public static ToastCommom createToastConfig(){
		if (toastCommom==null) {
			toastCommom = new ToastCommom();
		}
		return toastCommom;
	}
	
	/**
	 * 顯示Toast
	 * @param context
	 * @param root
	 * @param tvString
	 */
	
	public void ToastShow(Context context,ViewGroup root,String tvString){
		View layout = LayoutInflater.from(context).inflate(R.layout.toast_xml,root);
		TextView text = (TextView) layout.findViewById(R.id.text);
		ImageView mImageView = (ImageView) layout.findViewById(R.id.iv);
		mImageView.setBackgroundResource(R.drawable.ic_launcher);
		text.setText(tvString);
		text.setTextColor(R.color.aqua);
		toast = new Toast(context);
		toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
		toast.setDuration(Toast.LENGTH_LONG);
		toast.setView(layout);
		toast.show();
	}

}

3.建立一個Activity去引用該共通類:

import com.sbr.commonView.ToastCommom;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;

public class ToastActivity extends Activity {
	
	private Button mbutton;
	
	private ToastCommom toastCommom;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.toast_buton);
		toastCommom = ToastCommom.createToastConfig();
		mbutton = (Button) findViewById(R.id.btn);
		mbutton.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				toastCommom.ToastShow(ToastActivity.this, (ViewGroup)findViewById(R.id.toast_layout_root), "你好");
			}
		});
		
	}
	
}


好了,一個簡單的自定義toast顯示就完成了;當然萬變不離其宗,都是類似的做法。

相關推薦

android 定義Toast顯示風格

1.建立一個自己想要顯示Toast風格的XML如下程式碼(toast_xml.xml): <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.

Android 定義Toast顯示多種方式

Toast toast = Toast.makeText(this.getApplicationContext,"This is a Toast including Image!", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); Lin

Android 定義Toast,修改Toast樣式和顯示時長

Android 中有一個 Toast 控制元件,可以用來顯示提示資訊,還是非常好用的,但是樣式和顯示時長比較侷限。所以我們來自定義一個  Toast ,讓它可以顯示我們想要的效果,並能設定顯示時長。 首先,在 res\layout 資料夾下建立自定義 Toast 的佈

Android-定義Toast、LayoutInflater使用其他佈局

內容: 1.自定義樣式toast 2.再活動中新增其他佈局 實現效果: 步驟: 一、自定義View 引用zidingyixml檔案 生成一個佈局物件 二、採用Toast 的addView() 方法將該物件新增到Toast物件中 三、顯示:Toast.show()

android 定義toast停留時間

Toast類 //首先定義全域性變數mToast已經顯示和隱藏函式 private Toast mToast; // 隱藏toast資訊框常量 public static final int AIRPLAY_MESSAGE_HIDE_TOAST

Android 定義Dialog---顯示在中間(網易雲音樂選擇排序方式)

效果如上圖具體實現的程式碼如下:佈局檔案:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

Android定義Toast 解決關閉通知 Toast無法彈出

package common; import android.app.Activity; import android.content.Context; import android.os.Handler; import android.util.Log; import

定義Toast顯示時長

public void showMyToast(final Toast toast, final int cnt) { final Timer timer = new Timer()

android定義Toast——讓你應用別具一格

實際上,在github上層看到這種toast,但我的感覺是:用起來太麻煩了!我需要的要求是越簡單越好! 簡化Toast 原toast形式: Toast.makeText(this,”t”,Toast.LENGTH_LONG).show();或T

定義Toast 顯示文字和圖片

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

Android定義Toast檢視和動畫

在Android Toast基礎與原理中,我們對Toast的原始碼進行了分析。我們也對Toast的實現原理有了一定的瞭解。接下來我們將編寫一個工具類,來完成Toast的自定義檢視和動畫。 一、實現原理分析 通過上篇文章,我們知道Toast是通過內部類TN(一個ITra

android 定義Toast增加點選事件、Toast彈出隱藏動畫、Toast寬度為match_parent

在自定義Toast的時候,可能會用到點選事件,但是android系統本身Toast只是用於提示,並不支援點選事件,即使自定義Toast也不支援點選事件,檢視Toast原始碼可以發現,其內部的TN.class(該為私有類,外部調用不了)裡面的WindowManag

android定義星級評分控制元件,可實現只顯示實心星星

話不多說,上圖 近日app需求弄一個等級展示,看了下UI圖,只顯示實星(點亮的星星).如圖 但是網上關於星級評分的例子大多這樣 也展示虛心星星 通過自定義View package com.starsbar; import android.content.C

Android 定義View SeekBar 帶浮動文字顯示

先上圖 問1:seekbar_style.xml 為什麼 用xml 會不生效 參考 http://blog.csdn.net/as7210636/article/details/52169643 基本差不多 下載地址 https://github.com/linrenqi

Android定義ViewGroup打造各種風格的SlidingMenu

看鴻洋大大的QQ5.0側滑選單的視訊課程,對於側滑的時的動畫效果的實現有了新的認識,似乎打通了任督二脈,目前可以實現任意效果的側滑選單了,感謝鴻洋大大!! 鴻洋大大用的是HorizontalScrollView來實現的側滑選單功能,HorizontalScro

android 定義ListView顯示微信聊天好友列表

我們使用listView實現顯示微信好友列表,如下圖所示 這是MainActivity的程式碼如下: <span style="font-size:18px;">package com.listviewdodo; import java.util.Arr

Android 定義多行EditText,監聽最多輸入字元數字顯示

帶數字指示的EditText 定義所需屬性attrs.xml <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="LinesEditVi

android定義Material Design風格ProgressDialog的進度框

1、前言 在安卓開發中,我們需要自定義進度條對話方塊ProgressDialog來滿足設計的需求。本來主要講解如何來快速實現一個自定義進度條並且修改進度條顏色。 先看下最終效果 : 2、程式碼編寫 2.1 佈局檔案 以下是自定義對話方塊的佈局,

Android 定義彈出對話方塊顯示不全的問題

昨天需要用自定義AlertDialog來實現一項功能,步驟大體是: 1.自定義佈局檔案 2.初始化AlertDialog,並設定setView 3.按鈕 文字框啥的處理 為了偷懶直接copy工程裡面同事完成的對話方塊。但是我修改後效果卻不一樣,先看我的佈局檔案圖示: 這

Android-定義圓角Toast提示框

有時候我們根據需求需要自己指定toast的樣式,例如在介面中間顯示、圓角、帶圖片什麼的。 今天我給大家帶來的就是自定義圓角帶圖片顯示的toast提示框,先來看看最終效果圖:圖一為圓角帶圖片顯示的,圖二為圓角普通顯示。均為居中顯示 圖1:          圖2: 先來看看