日报2015/11/23(第一行代码读书笔记)

来源:互联网 发布:java 正态分布随机数 编辑:程序博客网 时间:2024/06/05 21:10

使用通知

发送通知需要NotificationManagerNotification
但是书上写的构建Notification 方法,Android3.0以上已经废弃,因此采用新的安全的方法:

        findViewById(R.id.btnNotificate).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //设置点击通知后的去处                Intent intent = new Intent("com.jackie.meidatest.intent.notificationApp");                PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);                //创建通知对象并设置参数                NotificationCompat.Builder ncb = new NotificationCompat.Builder(MainActivity.this);                ncb.setContentTitle("来自app");//设置通知标题                ncb.setContentText("这是app的通知");//设置通知内容                ncb.setContentIntent(pendingIntent);//设置通知跳转的pendingIntent                ncb.setTicker("您有一条新的app通知");//设置顶端通知小标题                ncb.setAutoCancel(true);                ncb.setSmallIcon(R.drawable.app_world);//设置通知图标                ncb.setDefaults(Notification.DEFAULT_ALL);//全部设置为默认                //得到NotificationManager对象                NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);                //发出id为1的通知                notificationManager.notify(1, ncb.build());            }        });

其中PendingIntent是用于点击通知后跳转的。


调用摄像头拍照和裁剪功能

这里写图片描述

package com.jackie.cameratest;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Environment;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.ImageView;import java.io.File;import java.io.FileNotFoundException;import java.io.IOException;public class MainActivity extends AppCompatActivity {    public static final int TAKE_PHOTO = 1;    public static final int CROP_PHOTO = 2;    private Button btnTP;    private ImageView ivPhoto;    private Uri imageUri;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        btnTP = (Button) findViewById(R.id.btnTP);        ivPhoto = (ImageView) findViewById(R.id.ivPhoto);        btnTP.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //创建图片的暂时存储文件                File photo = new File(Environment.getExternalStorageDirectory(), "tempImage.jpg");                if (photo.exists()) {                    //如果已经有图片文件则删除                    photo.delete();                }                try {                    //记得要有这句文件才算创建成功                    photo.createNewFile();                } catch (IOException e) {                    e.printStackTrace();                }                //调用系统摄像头拍照                imageUri = Uri.fromFile(photo);//将File对象转换为Uri                Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");//调用系统拍照功能                intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);//指定拍摄后图片的输出地址                startActivityForResult(intent, TAKE_PHOTO);//requestCode为TAKE_PHOTO            }        });    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        switch (requestCode) {            case TAKE_PHOTO:                if (resultCode == RESULT_OK) {                    Intent intent = new Intent("com.android.camera.action.CROP");//调用裁剪图片功能                    intent.setDataAndType(imageUri, "image/*");//指定裁剪所需的图片来源                    intent.putExtra("scale", true);//裁剪的时候保留原比例                    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);//指定裁剪后图片的输出地址                    startActivityForResult(intent, CROP_PHOTO);                }                break;            case CROP_PHOTO:                if (resultCode == RESULT_OK) {                    try {                        //将jpg图片解析成Bitmap                        Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(imageUri));                        //给ImageView设置Bitmap                        ivPhoto.setImageBitmap(bitmap);                    } catch (FileNotFoundException e) {                        e.printStackTrace();                    }                }                break;            default:                break;        }    }}
0 0
原创粉丝点击