package com.example.lianxi2;
import android.animation.ObjectAnimator;
import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.net.Uri;
import android.os.Build;
import android.provider.MediaStore;
import android.support.annotation.RequiresApi;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view= findViewById(R.id.view);
findViewById(R.id.btn_1).setOnClickListener(this);
view.setOnClickListener(this);
findViewById(R.id.btn_2).setOnClickListener(this);
findViewById(R.id.btn_3).setOnClickListener(this);
findViewById(R.id.btn_4).setOnClickListener(this);
findViewById(R.id.btn_5).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.view:
toast();
break;
case R.id.btn_1://平移
trance();
break;
case R.id.btn_2://旋转
rotation();
break;
case R.id.btn_3://淡入淡出
alpha();
break;
case R.id.btn_4://渐变
argb();
break;
case R.id.btn_5://展示到状态栏
show();
break;
}
}
//展示到状态栏
private void show() {
NotificationManager mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
mBuilder.setContentTitle("用户更新了")//设置通知栏标题
.setContentText("新版本来了!!!!")
.setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL, this)) //设置通知栏点击意图
.setTicker("新版本来了!!!!") //通知首次出现在通知栏,带上升动画效果的
.setWhen(System.currentTimeMillis())//通知产生的时间,会在通知信息里显示,一般是系统获取到的时间
.setPriority(Notification.PRIORITY_DEFAULT) //设置该通知优先级
.setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消
.setOngoing(false)//ture,设置他为一个正在进行的通知。他们通常是用来表示一个后台任务,用户积极参与(如播放音乐)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)
.setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加声音、闪灯和振动效果的最简单、最一致的方式是使用当前的用户默认设置,使用defaults属性,可以组合
.setSound(Uri.withAppendedPath(
MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "5"))
.setSmallIcon(R.mipmap.ic_launcher);//设置通知小ICON
mNotificationManager.notify(3, mBuilder.build());
}
private PendingIntent getDefalutIntent(int flagAutoCancel, MainActivity mainActivity) {
return null;
}
//渐变
private void argb() {
ObjectAnimator objectAnimator=ObjectAnimator.ofArgb(view,"backgroundColor", 0xffff00ff, 0xffffff00, 0xffff00ff);
objectAnimator.setDuration(6000);
objectAnimator.setRepeatCount(10);
objectAnimator.start();
}
//淡入淡出
private void alpha() {
ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(view,"alpha",1,0.5f,0,0.5f,1);
objectAnimator.setDuration(6000);
objectAnimator.setRepeatCount(10);
objectAnimator.start();
}
//旋转
private void rotation() {
ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(view,"rotationY",0,360);
objectAnimator.setDuration(3000);
objectAnimator.start();
}
//平移
private void trance() {
ObjectAnimator objectAnimator=ObjectAnimator.ofFloat(view,"translationX",0,500,500,0);
objectAnimator.setDuration(3000);
objectAnimator.start();
}
private void toast() {
Toast.makeText(this,"----",Toast.LENGTH_SHORT).show();
}
}