android toast前面自动加内容,在android4.1.2下对 Toast五种显示效果建立属于你自己的Toast...

在android4.1.2下对 Toast五种显示效果建立属于你自己的Toast

Toast用于向用户显示一些帮助/提示。网上对这5种效果都有描述,有的还提供了原代码,经测试多是基于android低版本的,试了几个代码在android4.1.2上均有点问题,但还是要非常感谢,没有这些GGMM的贡献,我今天做这个效果不知要困难多少!

下面一步一步来说明Toast的强大,定义一个属于你自己的Toast。

首先介绍开发环境:Mac

OSX10.8.2+Android4.1.2+Eclipse4.2

一、界面布局

界面比较简单,如下图:五个按钮(对应5种效果)+一个EditView(用于输入Toast中的信息)+一个TextView(用于显示EditView中的信息)。工程项目名为Toast5Demo,程序需要的两张图片,选取系统自带(一个搜索图标,另一个系统图标)。

a4c26d1e5885305701be709a3d33442f.png

对应的activity_toast_main.xml是:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical" >

android:id="@+id/myText"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:hint="@string/hello_world"

android:textSize="12pt"

android:textStyle="bold" />

android:id="@+id/myeditText1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:ems="10"

android:hint="@string/myeditText1_text" >

android:id="@+id/mybutton1"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/mybutton1_text" />

android:id="@+id/mybutton2"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/mybutton2_text"

/>

android:id="@+id/mybutton3"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/mybutton3_text" />

android:id="@+id/mybutton4"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/mybutton4_text" />

android:id="@+id/mybutton5"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/mybutton5_text" />

这是strings.xml文件:

resources>

Toast5Demo

五种Toast效果演示!

Settings

Toast5DemoMainTest

请输入Toast中的信息

默认的Toast特效样式

自定义Toast的显示位置

带图片的Toast特效

完全自己定义的Toast特效

其它线程方式的Toast效果

图片属性

另外,在显示第四种效果即“完全自己定义的Toast特效”时,还需要使用一个布局文件,命名为custom.xml,代码是:

xmlns:tools="http://schemas.android.com/tools"

android:layout_height="wrap_content"

android:layout_width="wrap_content"

android:background="#ffffffff"

android:orientation="vertical"

android:id="@+id/llToast" >

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" />

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" >

android:id="@+id/tvImageToast"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center"

android:contentDescription="@string/my_name"

android:src="@drawable/ic_launcher" />

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" />

二、五种效果实现

1、默认的Toast特效样式

a4c26d1e5885305701be709a3d33442f.png

代码listener1 = newOnClickListener() {

public voidonClick(View v) {

setTitle(R.string.mybutton1_text);

Toast.makeText(ToastMainActivity.this,getText(R.string.mybutton1_text)+myeditText1.getText().toString(),Toast.LENGTH_LONG).show();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

};

2、自定义显示位置效果

a4c26d1e5885305701be709a3d33442f.png

代码listener2 = newOnClickListener() {

public voidonClick(View v) {

setTitle(R.string.mybutton2_text);

myToast=Toast.makeText(getApplicationContext(),getText(R.string.mybutton2_text)+myeditText1.getText().toString(),Toast.LENGTH_LONG);

myToast.setGravity(Gravity.CENTER, 0, 0);

myToast.show();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

};3、带图片效果

a4c26d1e5885305701be709a3d33442f.png

代码listener3 = newOnClickListener() {

public voidonClick(View v) {

setTitle(R.string.mybutton3_text);

myToast=

Toast.makeText(getApplicationContext(),getText(R.string.mybutton3_text)+myeditText1.getText().toString(),

Toast.LENGTH_LONG);

myToast.setGravity(Gravity.CENTER, 0, 0);

LinearLayout toastView =

(LinearLayout) myToast.getView();

ImageView imageCodeProject =

newImageView(getApplicationContext());

imageCodeProject.setImageResource(R.drawable.ic_action_search);

toastView.addView(imageCodeProject,

0);

myToast.show();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

};4、完全自定义效果

a4c26d1e5885305701be709a3d33442f.png

代码listener4 = newOnClickListener() {

public voidonClick(View v) {

setTitle(R.string.mybutton4_text);

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.ic_launcher);

TextView title = (TextView)

layout.findViewById(R.id.tvTitleToast);

title.setText("Attention");

TextView text = (TextView)

layout.findViewById(R.id.tvTextToast);

text.setText(getText(R.string.mybutton4_text)+myeditText1.getText().toString());

myToast= newToast(getApplicationContext());

myToast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);

myToast.setDuration(Toast.LENGTH_LONG);

myToast.setView(layout);

myToast.show();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

};5、其他线程

a4c26d1e5885305701be709a3d33442f.png

代码listener5 = new OnClickListener() {

public voidonClick(View v) {

setTitle(R.string.mybutton5_text);

newThread(newRunnable() {

public voidrun() {

showToast();

}

}).start();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

public voidshowToast() {

handler.post(new Runnable() {

//

@Override

public voidrun() {

myToast=Toast.makeText(getApplicationContext(),getText(R.string.mybutton5_text),Toast.LENGTH_SHORT);

myToast.show();

}

});

}

}; 三、完整代码

Main.javapackagecom.shhuangpu.toast5demo;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.widget.EditText;

import android.widget.Button;

import android.view.View.OnClickListener;

import android.view.View;

import android.widget.Toast;

import android.widget.TextView;

import android.view.Gravity;

import android.widget.LinearLayout;

import android.widget.ImageView;

import android.view.LayoutInflater;

import android.view.ViewGroup;

import android.os.Handler;

public classToastMainActivity

extends Activity {

Handler handler = new Handler();

private TextView myText;

private EditText myeditText1;

private Toast myToast;

private Button myButton1;

OnClickListener listener1 = null;

private Button myButton2;

OnClickListener listener2 = null;

private Button myButton3;

OnClickListener listener3 = null;

private Button myButton4;

OnClickListener listener4 = null;

private Button myButton5;

OnClickListener listener5 = null;

@Override

publicvoid onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_toast_main);

listener1= new OnClickListener() {

public void onClick(View v) {

setTitle(R.string.mybutton1_text);

Toast.makeText(ToastMainActivity.this,getText(R.string.mybutton1_text)+myeditText1.getText().toString(),Toast.LENGTH_LONG).show();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

};

listener2 = new OnClickListener() {

public void onClick(View v) {

setTitle(R.string.mybutton2_text);

myToast=Toast.makeText(getApplicationContext(),getText(R.string.mybutton2_text)+myeditText1.getText().toString(),Toast.LENGTH_LONG);

myToast.setGravity(Gravity.CENTER, 0, 0);

myToast.show();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

};

listener3 = newOnClickListener() {

public void onClick(View v) {

setTitle(R.string.mybutton3_text);

myToast =

Toast.makeText(getApplicationContext(),getText(R.string.mybutton3_text)+myeditText1.getText().toString(),

Toast.LENGTH_LONG);

myToast.setGravity(Gravity.CENTER, 0, 0);

LinearLayout toastView = (LinearLayout) myToast.getView();

ImageView imageCodeProject = new ImageView(getApplicationContext());

imageCodeProject.setImageResource(R.drawable.ic_action_search);

toastView.addView(imageCodeProject, 0);

myToast.show();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

};

listener4 = newOnClickListener() {

public void onClick(View v) {

setTitle(R.string.mybutton4_text);

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.ic_launcher);

TextView title = (TextView)

layout.findViewById(R.id.tvTitleToast);

title.setText("Attention");

TextView text = (TextView)

layout.findViewById(R.id.tvTextToast);

text.setText(getText(R.string.mybutton4_text)+myeditText1.getText().toString());

myToast = newToast(getApplicationContext());

myToast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);

myToast.setDuration(Toast.LENGTH_LONG);

myToast.setView(layout);

myToast.show();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

};

listener5 = newOnClickListener() {

public void onClick(View v) {

setTitle(R.string.mybutton5_text);

new Thread(new Runnable() {

public voidrun() {

showToast();

}

}).start();

myText.setText(myeditText1.getText().toString());

myeditText1.setText("");

}

public voidshowToast() {

handler.post(new Runnable() {

//

@Override

public voidrun() {

myToast=Toast.makeText(getApplicationContext(),getText(R.string.mybutton5_text),Toast.LENGTH_SHORT);

myToast.show();

}

});

}

};

myText=(TextView)findViewById(R.id.myText);

myeditText1=(EditText)findViewById(R.id.myeditText1);

myButton1 =

(Button)findViewById(R.id.mybutton1);

myButton1.setOnClickListener(listener1);

myButton2 =

(Button)findViewById(R.id.mybutton2);

myButton2.setOnClickListener(listener2);

myButton3 =

(Button)findViewById(R.id.mybutton3);

myButton3.setOnClickListener(listener3);

myButton4 =

(Button)findViewById(R.id.mybutton4);

myButton4.setOnClickListener(listener4);

myButton5 =

(Button)findViewById(R.id.mybutton5);

myButton5.setOnClickListener(listener5);

}

@Override

publicbooleanonCreateOptionsMenu(Menu menu)

{

getMenuInflater().inflate(R.menu.activity_toast_main, menu);

returntrue;

}

}

四、后记,本程序主要在于实现功能,没有进一步优化,比如使用Swich语句等,有兴趣的可以做做。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值