zoukankan      html  css  js  c++  java
  • 进阶篇-用户界面:12.android中的 Toast(吐司) 和 Notification(通知)

    1.Toast

    android中的Toast是一个非常友好方便的用户界面交互形式,通过弹出一个吐司来警告、提示用户。

    Toast的系统默认形式非常简单

    Toast.makeText(MainActivity.this, "This is a normal toast!",Toast.LENGTH_SHORT);
                  

    效果就是从屏幕的下方弹出一个吐司。提示 this is a normal toast!

    当然我们也可以自定义toast的弹出位置甚至弹出的内容不仅只可以是文字,其他的控件也可以,自定义代码如下:

    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.view.animation.Animation;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    LinearLayout ll = new LinearLayout(MainActivity.this);
    
                    TextView tv = new TextView(MainActivity.this);
                    tv.setText("this is a textview");
                    ImageView imv = new ImageView(MainActivity.this);
                    imv.setImageResource(R.mipmap.ic_launcher);
                    ll.addView(tv);
                    ll.addView(imv);
    
                    Toast t = Toast.makeText(MainActivity.this, "This is a normal toast!", Toast.LENGTH_SHORT);
                    t.setGravity(Gravity.CENTER,0,0);   //set the position of the toast
                    t.setView(ll);
                    t.show();
                }
            });
        }
    }

    效果是弹出的toast内容包括一段文字和一张图片。

    2.Notification(通知)

    我们平时用的应用每天不停的给我们发通知,这个通知就是Notification。

    Notification的使用方法。

    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Context;
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.app.NotificationCompat;
    import android.view.Gravity;
    import android.view.View;
    
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
        public static final int NOTIFIVATION_ID = 1200;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
    
            final PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0,  new Intent(MainActivity.this,MainActivity.class), PendingIntent.FLAG_CANCEL_CURRENT);
            findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    NotificationCompat.Builder builer = new NotificationCompat.Builder(MainActivity.this);
                    builer.setContentIntent(pi);  //set notifiction onClick method
                    builer.setSmallIcon(R.mipmap.ic_launcher);
                    builer.setContentTitle("You have a new message!");
                    builer.setContentText("This is a message!You've made an notification!");
                    Notification notification = builer.build();
                    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
                    manager.notify(NOTIFIVATION_ID,notification);
                }
            });
    
        }
    }

    此为安卓用户界面大致知识的完结……接下来的时间学习简单的安卓系统功能!

  • 相关阅读:
    Linux进程同步之记录锁(fcntl)
    Linux进程间通信(九)---综合实验之有名管道通信实验
    最近调试HEVC中码率控制, 发现HM里面一个重大bug
    高晓松脱口秀--晓说(第一季&第二季)mp3下载
    IBM AIX Shell编写遭遇错误一2
    deinstall oracle 11g on linux
    EBS并发管理器请求汇总(按照并发消耗时间,等待时间,平均等待事件等汇总)
    使用 SQLNET.EXPIRE_TIME 清除僵死连接
    openfire插件开发的几点说明
    How-to Dump Keys from Memcache--reference
  • 原文地址:https://www.cnblogs.com/androidNot/p/5658081.html
Copyright © 2011-2022 走看看