自定義Toast樣式
好長時間沒寫部落格了,剛換個新工作沒幾天,今天公司小組要求寫一個自定義的Toast,工作交給我了,其實並不難,幾分鐘搞定,把程式碼發出來當做記錄一下把。廢話不多說,上效果:
結構目錄:
程式碼解析:
1、toast.xml
佈局很簡單就是一個ImageView和TextView橫向排列,不解釋:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="80dp"
android:layout_height="30dp"
android:padding="10dp"
android:gravity="center"
android:background="@drawable/toaststyle"
android:orientation="horizontal">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView"/>
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:shadowColor="#bbfcd603"
android:shadowRadius="2.75"
android:textColor="#ffffff"
/>
</LinearLayout>
2、toaststyle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#21211d" />
<corners android:topLeftRadius="10dp"
android:topRightRadius="10dp"
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"/>
</shape>
3、CustomToast.java開始我們的封裝程式碼
package com.example.administrator.customview;
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Created by Administrator on 2016/6/16 0016.
*/
public class CustomToast {
private static TextView mTextView;
private static ImageView mImageView;
public static void showToast(Context context, String message) {
//載入Toast佈局
View toastRoot = LayoutInflater.from(context).inflate(R.layout.toast, null);
//初始化佈局控制元件
mTextView = (TextView) toastRoot.findViewById(R.id.message);
mImageView = (ImageView) toastRoot.findViewById(R.id.imageView);
//為控制元件設定屬性
mTextView.setText(message);
mImageView.setImageResource(R.mipmap.ic_launcher);
//Toast的初始化
Toast toastStart = new Toast(context);
//獲取螢幕高度
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
int height = wm.getDefaultDisplay().getHeight();
//Toast的Y座標是螢幕高度的1/3,不會出現不適配的問題
toastStart.setGravity(Gravity.TOP, 0, height / 3);
toastStart.setDuration(Toast.LENGTH_LONG);
toastStart.setView(toastRoot);
toastStart.show();
}
}
程式碼很詳細,不用多解釋,這裡只是一個簡單的例子,大家感興趣的可以自己新增喜歡的設計,順便說一下,這裡很多屬性都可以自己抽出來的當成變數的,大家可以根據自己的風格封裝乘工具類使用。
這裡都是一些純粹的程式碼,沒有涉及到一些其他的資原始檔,大家copy過來就直接用,這裡就不上傳例子了,感覺copy這用更簡單。好了,簡單的Demo就到這裡了。
相關文章
- mui toast自定義樣式UIAST
- 自定義Toast樣式+改變Toast寬高AST
- Android 自定義Toast,修改Toast樣式和顯示時長AndroidAST
- 【Android開發點滴】自定義Toast樣式AndroidAST
- 自定義ToastAST
- Android自定義ToastAndroidAST
- 如何自定義 drag 樣式
- 自定義 checkbox 樣式
- 自定義dialog樣式
- Qt Charts 自定義樣式QT
- Android 自定義Toast及BUGAndroidAST
- 一個可以自定義的ToastAST
- 微信小程式之『自定義toast』微信小程式AST
- PHPCMS自定義表單樣式PHP
- android自定義button樣式Android
- cnBlogs的自定義樣式
- CefSharp自定義捲軸樣式
- Houdini - 建立自定義的button樣式
- CSS自定義滑鼠指標樣式CSS指標
- 自定義Toast及視窗透明處理AST
- Android Toast 預設和自定義使用AndroidAST
- Android中自定義Toast文字大小AndroidAST
- uni-app 自定義loading 自定義toast 相容小程式&APPAPPAST
- ModernUI教程:如何從MUI樣式中派生自定義樣式UI
- checkbox/radio自定義樣式
- pixi.js 自定義游標樣式JS
- input[type="radio"]自定義樣式
- jQuery validate 自定義樣式、規則jQuery
- 自定義瀏覽器捲軸樣式瀏覽器
- 百度小程式自定義通用toast元件AST元件
- Android-重新包裝Toast,自定義背景AndroidAST
- Android中自定義特定顏色的ToastAndroidAST
- Android 程式設計程式碼-自定義 ToastAndroid程式設計AST
- Flex SDK 4(Gumbo)更方便的自定義樣式、自定義SparkSkin(二)薦FlexSpark
- SQLserver自定義樣式主鍵-函式實現篇SQLServer函式
- 「HTML+CSS」--自定義按鈕樣式【004】HTMLCSS
- 「HTML+CSS」--自定義按鈕樣式【003】HTMLCSS
- antd-mobile 自定義picker按鈕樣式