我的android 第三天 - 自定义Toast
今天学自定义Toast。好吧,原谅我周末偷懒了!先弄2个Button。
<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" >
<Button
android:id="@+id/toast_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="17dp"
android:text="吐司"
android:textSize="30sp" />
<Button
android:id="@+id/notice_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/toast_btn"
android:layout_below="@+id/toast_btn"
android:layout_marginTop="46dp"
android:text="通知" />
</RelativeLayout>
在activity里面找到这2个Button ,添加监听
toastBtn=(Button) findViewById(R.id.toast_btn);
noticeBtn=(Button) findViewById(R.id.notice_btn);
//给按钮添加监听
toastBtn.setOnClickListener(this);
noticeBtn.setOnClickListener(this);
判断单击了哪个View
public void onClick(View v) {
//判断单击了哪个View
switch (v.getId()) {
case R.id.toast_btn:
//显示Toast
toast(v);
break;
case R.id.notice_btn:
notice(v);
}
}
private void notice(View v) {
NotificationManager mgr=(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification=new Notification(R.drawable.sym_call_missed,
"你有一个未接电话", System.currentTimeMillis());
//意图
Intent intent=new Intent(context,DetailActivity.class);
//条件触发意图,转移activity
PendingIntent pi=PendingIntent.getActivity(context, 0, intent, 0);
notification.setLatestEventInfo(context, "未接电话", "查看来源", pi);
//默认提示的声音
notification.defaults=Notification.DEFAULT_SOUND;
//发出通知
mgr.notify(1, notification);
}
private void toast(View v) {
Toast toast=new Toast(context);
//设置view(就是Toast显示的界面)
//构建一个线性布局
LinearLayout layout=new LinearLayout(context);
layout.setBackgroundResource(R.drawable.bg_yellow);
layout.setGravity(Gravity.CENTER);
//设置此布局为水平线性布局
layout.setOrientation(LinearLayout.HORIZONTAL);
//构建一个图片
ImageView image=new ImageView(context);
image.setBackgroundResource(R.drawable.ic_toast);
//添加图片到布局
layout.addView(image);
//构建一个文本资源
TextView text=new TextView(context);
text.setText("冰激凌");
layout.addView(text);
toast.setView(layout);
//设置子控件的位置
toast.setGravity(Gravity.CENTER, 0, 0);//偏移量
//设置Toast的显示时间
toast.setDuration(Toast.LENGTH_LONG);
//显示吐司
toast.show();
}
效果演示:
点击第一个button
点击第二个button
点击这条信息跳转到DetailActivity
大概就这样吧。。。