Francis 学习笔记之旅
notifications之旅一
Toast Notification学习
源码如下:
notifications之旅一
Toast Notification学习
1. android inflater用法
更详细内容参考:http://www.cnblogs.com/shitianzeng/articles/2323427.html
2. 类的封装操作源码如下:
1.dialog.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:padding="10dp" android:orientation="horizontal" android:background="#DAAA" android:id="@+id/toast_layout_root"> <ImageView android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/image" android:layout_marginRight="10dp"/> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:textColor="#FFF" android:id="@+id/text"/> </LinearLayout>
2.activiry_main.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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: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="cqmu.francisteam.com.myapplication.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="自定义通知" android:id="@+id/button" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /> </RelativeLayout>3.类1)MainActivity
package cqmu.francisteam.com.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { cqmu.francisteam.com.myapplication.Toast toast = new cqmu.francisteam.com.myapplication.Toast(); toast.ToastView(MainActivity.this, "自定义的吐司通知"); } }); } }2)Toast
package cqmu.francisteam.com.myapplication; import android.content.Context; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; /** * Created by Administrator on 2016/5/27. */ public class Toast { public void ToastView(Context context, String text) { android.widget.Toast toast = new android.widget.Toast(context); View view = LayoutInflater.from(context).inflate(R.layout.dialog, null); ImageView imageView = (ImageView) view.findViewById(R.id.image); imageView.setImageResource(R.drawable.launcher); TextView textView = (TextView) view.findViewById(R.id.text); textView.setText(text); toast.setDuration(android.widget.Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); toast.setView(view); toast.show(); } }总结:inflater用布局xml生成view。FindViewById用于从一个已有view里找id为特定值的“子view”。
View view = LayoutInflater.from(context).inflate(R.layout.dialog, null);