7.自定义Toast

来源:互联网 发布:巨灵金融怎么查数据 编辑:程序博客网 时间:2024/04/29 18:42

1 布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="org.heima.toastdemo.MainActivity" >    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="customToast"        android:text="自定义Toast" />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="doWin"        android:text="WindowManager" /></LinearLayout>

2 MainActivity

package org.heima.toastdemo;import android.app.Activity;import android.content.Context;import android.graphics.PixelFormat;import android.os.Bundle;import android.view.Gravity;import android.view.View;import android.view.WindowManager;import android.widget.Toast;public class MainActivity extends Activity {private WindowManager mWm;private View mV;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void customToast(View view) {Toast toast = new Toast(this);View v = View.inflate(this, R.layout.view_lv_selected_item, null);toast.setView(v);toast.setGravity(Gravity.CENTER, 0, 0);toast.show();}public void doWin(View view) {mWm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);mV = View.inflate(this, R.layout.view_lv_selected_item, null);WindowManager.LayoutParams params = new WindowManager.LayoutParams();params.width = WindowManager.LayoutParams.WRAP_CONTENT;params.height = WindowManager.LayoutParams.WRAP_CONTENT;params.format = PixelFormat.TRANSLUCENT;params.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE;params.setTitle("Toast");params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;mWm.addView(mV, params);}@Overrideprotected void onPause() {super.onPause();mWm.removeView(mV);}}


## WindowManager---Toast

 public void addView(View view, ViewGroup.LayoutParams params);
 public void updateViewLayout(View view, ViewGroup.LayoutParams params);
 public void removeView(View view);


* mWM = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);




* LayoutParams:
final WindowManager.LayoutParams params = mParams;
            params.height = WindowManager.LayoutParams.WRAP_CONTENT;
            params.width = WindowManager.LayoutParams.WRAP_CONTENT;
            params.format = PixelFormat.TRANSLUCENT;
            params.windowAnimations = com.android.internal.R.style.Animation_Toast;
            params.type = WindowManager.LayoutParams.TYPE_TOAST;
            params.setTitle("Toast");
            params.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
                    | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                    | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;




* setView(View view);




  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />






0 0