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

使用通知

发送通知需要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;
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值