当前位置: 代码迷 >> Android >> 玩转Android-UI篇-Toast(提醒)
  详细解决方案

玩转Android-UI篇-Toast(提醒)

热度:242   发布时间:2016-05-01 16:35:45.0
玩转Android---UI篇---Toast(提示)

?

Toast用于向用户显示一些帮助/提示。下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast。

注意:

LENGTH_LONG---长时间显示视图或文本提示

LENGTH_SHORT---短时间显示视图或文本提示

setGravity(int gravity,int xOffset,int yOffset)---设置提示应该在屏幕上的显示的位置

setDuration(int duartion)---设置提示显示的持续时间

?

1.默认效果

代码

Toast.makeText(getApplicationContext(), "默认Toast样式",
?????Toast.LENGTH_SHORT).show();

?

2.自定义显示位置效果

代码

toast = Toast.makeText(getApplicationContext(),
?????"自定义位置Toast", Toast.LENGTH_LONG);
???toast.setGravity(Gravity.CENTER, 0, 0);
???toast.show();

?

3.带图片效果

?

代码

toast = Toast.makeText(getApplicationContext(),
?????"带图片的Toast", Toast.LENGTH_LONG);
???toast.setGravity(Gravity.CENTER, 0, 0);
???LinearLayout toastView = (LinearLayout) toast.getView();
???ImageView imageCodeProject = new ImageView(getApplicationContext());
???imageCodeProject.setImageResource(R.drawable.icon);
???toastView.addView(imageCodeProject, 0);
???toast.show();

?

4.完全自定义效果

代码

LayoutInflater inflater = getLayoutInflater();
???View layout = inflater.inflate(R.layout.custom,
?????(ViewGroup) findViewById(R.id.llToast));
???ImageView image = (ImageView) layout
?????.findViewById(R.id.tvImageToast);
???image.setImageResource(R.drawable.icon);
???TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
???title.setText("Attention");
???TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
???text.setText("完全自定义Toast");
???toast = new Toast(getApplicationContext());
???toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
???toast.setDuration(Toast.LENGTH_LONG);
???toast.setView(layout);
???toast.show();

?

5.其他线程

?代码

new Thread(new Runnable() {
????public void run() {
?????showToast();
????}
???}).start();

?

?

完整代码

1.Main,java

package com.wjq.toast;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class Main extends Activity implements OnClickListener {
?Handler handler = new Handler();

[email protected]
?public void onCreate(Bundle savedInstanceState) {
??super.onCreate(savedInstanceState);
??setContentView(R.layout.main);

??findViewById(R.id.btnSimpleToast).setOnClickListener(this);
??findViewById(R.id.btnSimpleToastWithCustomPosition).setOnClickListener(
????this);
??findViewById(R.id.btnSimpleToastWithImage).setOnClickListener(this);
??findViewById(R.id.btnCustomToast).setOnClickListener(this);
??findViewById(R.id.btnRunToastFromOtherThread).setOnClickListener(this);

?}

?public void showToast() {
??handler.post(new Runnable() {

[email protected]
???public void run() {
????Toast.makeText(getApplicationContext(), "我来自其他线程!",
??????Toast.LENGTH_SHORT).show();

???}
??});
?}

[email protected]
?public void onClick(View v) {
??Toast toast = null;
??switch (v.getId()) {
??case R.id.btnSimpleToast:
???Toast.makeText(getApplicationContext(), "默认Toast样式",
?????Toast.LENGTH_SHORT).show();
???break;
??case R.id.btnSimpleToastWithCustomPosition:
???toast = Toast.makeText(getApplicationContext(),
?????"自定义位置Toast", Toast.LENGTH_LONG);
???toast.setGravity(Gravity.CENTER, 0, 0);
???toast.show();
???break;
??case R.id.btnSimpleToastWithImage:
???toast = Toast.makeText(getApplicationContext(),
?????"带图片的Toast", Toast.LENGTH_LONG);
???toast.setGravity(Gravity.CENTER, 0, 0);
???LinearLayout toastView = (LinearLayout) toast.getView();
???ImageView imageCodeProject = new ImageView(getApplicationContext());
???imageCodeProject.setImageResource(R.drawable.icon);
???toastView.addView(imageCodeProject, 0);
???toast.show();
???break;
??case R.id.btnCustomToast:
???LayoutInflater inflater = getLayoutInflater();
???View layout = inflater.inflate(R.layout.custom,
?????(ViewGroup) findViewById(R.id.llToast));
???ImageView image = (ImageView) layout
?????.findViewById(R.id.tvImageToast);
???image.setImageResource(R.drawable.icon);
???TextView title = (TextView) layout.findViewById(R.id.tvTitleToast);
???title.setText("Attention");
???TextView text = (TextView) layout.findViewById(R.id.tvTextToast);
???text.setText("完全自定义Toast");
???toast = new Toast(getApplicationContext());
???toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
???toast.setDuration(Toast.LENGTH_LONG);
???toast.setView(layout);
???toast.show();
???break;
??case R.id.btnRunToastFromOtherThread:
???new Thread(new Runnable() {
????public void run() {
?????showToast();
????}
???}).start();
???break;

??}

?}
}

?

2.main,xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
?android:orientation="vertical" android:layout_width="fill_parent"
?android:layout_height="fill_parent" android:padding="5dip" android:gravity="center">
?<Button android:layout_height="wrap_content"
??android:layout_width="fill_parent" android:id="@+id/btnSimpleToast"
??android:text="默认"></Button>
?<Button android:layout_height="wrap_content"
??android:layout_width="fill_parent" android:text="自定义显示位置"
??android:id="@+id/btnSimpleToastWithCustomPosition"></Button>
?<Button android:layout_height="wrap_content"
??android:layout_width="fill_parent" android:id="@+id/btnSimpleToastWithImage"
??android:text="带图片"></Button>
?<Button android:layout_height="wrap_content"
??android:layout_width="fill_parent" android:text="完全自定义"
??android:id="@+id/btnCustomToast"></Button>
?<Button android:layout_height="wrap_content"
??android:layout_width="fill_parent" android:text="其他线程"
??android:id="@+id/btnRunToastFromOtherThread"></Button>

</LinearLayout>

?

3.custom.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
?xmlns:android="http://schemas.android.com/apk/res/android"
?android:layout_height="wrap_content" android:layout_width="wrap_content"
?android:background="#ffffffff" android:orientation="vertical"
?android:id="@+id/llToast" >
?<TextView
??android:layout_height="wrap_content"
??android:layout_margin="1dip"
??android:textColor="#ffffffff"
??android:layout_width="fill_parent"
??android:gravity="center"
??android:background="#bb000000"
??android:id="@+id/tvTitleToast" />
?<LinearLayout
??android:layout_height="wrap_content"
??android:orientation="vertical"
??android:id="@+id/llToastContent"
??android:layout_marginLeft="1dip"
??android:layout_marginRight="1dip"
??android:layout_marginBottom="1dip"
??android:layout_width="wrap_content"
??android:padding="15dip"
??android:background="#44000000" >
??<ImageView
???android:layout_height="wrap_content"
???android:layout_gravity="center"
???android:layout_width="wrap_content"
???android:id="@+id/tvImageToast" />
??<TextView
???android:layout_height="wrap_content"
???android:paddingRight="10dip"
???android:paddingLeft="10dip"
???android:layout_width="wrap_content"
???android:gravity="center"
???android:textColor="#ff000000"
???android:id="@+id/tvTextToast" />
?</LinearLayout>
</LinearLayout>

?

转自:http://www.cnblogs.com/salam/archive/2010/11/10/1873654.html

  相关解决方案