4、完全实现我们自己的自定义效果:
5、可以由其它线程更新:
查看源代码:
HelloToastActivity.java
package hb.android.hellotoast;
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.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class HelloToastActivity extends Activity {
/** Called when the activity is first created. */
Button btn_default;
Button btn_define;
Button btn_all_define;
Button btn_image_define;
Button btn_other_thread;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initButton();
btn_all_define.setOnClickListener(new MyOnClickListerer());
btn_define.setOnClickListener(new MyOnClickListerer());
btn_other_thread.setOnClickListener(new MyOnClickListerer());
btn_image_define.setOnClickListener(new MyOnClickListerer());
btn_default.setOnClickListener(new MyOnClickListerer());
}
public void initButton() {
btn_all_define = (Button) findViewById(R.id.btn_all_define);
btn_default = (Button) findViewById(R.id.btn_default);
btn_define = (Button) findViewById(R.id.btn_define);
btn_image_define = (Button) findViewById(R.id.btn_image_define);
btn_other_thread = (Button) findViewById(R.id.btn_other_thread);
}
private class MyOnClickListerer implements OnClickListener {
Handler handler = new Handler();
@Override
public void onClick(View v) {
if (v == btn_default) {
Toast.makeText(getApplicationContext(), “这 是默认效果”,
Toast.LENGTH_SHORT).show();
} else if (v == btn_define) {
Toast toast = Toast.makeText(getApplicationContext(),
“这是自定义位置”, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
} else if (v == btn_image_define) {
Toast toast = Toast.makeText(getApplicationContext(), “这是带图片的”,
Toast.LENGTH_SHORT);
LinearLayout toastView = (LinearLayout) toast.getView();
ImageView imageCodeProject = new ImageView(
getApplicationContext());
imageCodeProject.setImageResource(R.drawable.ic_launcher);
toastView.addView(imageCodeProject, 0);
toast.show();
} else if (v == btn_all_define) {
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.custom, null);
ImageView iv = (ImageView) view.findViewById(R.id.tvImageToast);
iv.setImageResource(R.drawable.ic_launcher);
TextView title = (TextView) view
.findViewById(R.id.tvTitleToast);
title.setText(“Attention”);
TextView text = (TextView) view.findViewById(R.id.tvTextToast);
text.setText(“完全自定义Toast”);
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.RIGHT | Gravity.TOP, 12, 40);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(view);
toast.show();
} else if (v == btn_other_thread) {
new Thread(new Runnable() {
public void run() {
System.out.println(“d”);
showToast();
}
}).start();
}
}
public void showToast() {
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), “我来自其他线程!”,
Toast.LENGTH_SHORT).show();
}
});
}
}
}
custom.xml
还没有评论,来说两句吧...