美文网首页
android第一行代码笔记12-短信、摄像头和相册

android第一行代码笔记12-短信、摄像头和相册

作者: 刚刚8888 | 来源:发表于2020-07-01 15:30 被阅读0次

当手机接收到一条短信的 时候,系统会发出一条值为 android.provider.Telephony.SMS_RECEIVED 的广播,这条广播里 携带着与短信相关的所有数据。

摄像头与相册

// 摄像头
public class MainActivity extends Activity {
        public static final int TAKE_PHOTO = 1;
        public static final int CROP_PHOTO = 2;
        private Button takePhoto;
        private ImageView picture;
    private Uri imageUri;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        takePhoto = (Button) findViewById(R.id.take_photo);
        picture = (ImageView) findViewById(R.id.picture);
        takePhoto.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
// 创建File对象,用于存储拍照后的图片
                File outputImage = new File(Environment.
getExternalStorageDirectory(), "tempImage.jpg");
                try {
                    if (outputImage.exists()) {
                        outputImage.delete();
                    }
                    outputImage.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
imageUri = Uri.fromFile(outputImage);
Intent intent = new Intent("android.media.action. IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, 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 {
                        Bitmap bitmap = BitmapFactory.decodeStream
    (getContentResolver()
.openInputStream(imageUri)); picture.setImageBitmap(bitmap); // 将裁剪后的照片显示出来
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
} }
                break;
            default:
break; }
} }

// 权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


// 相册选择
chooseFromAlbum.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
// 创建File对象,用于存储选择的照片
                File outputImage = new File(Environment.
getExternalStorageDirectory(), "output_image.jpg");
                    try {
                        if (outputImage.exists()) {
                           outputImage.delete();
                        }
                        outputImage.createNewFile();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    imageUri = Uri.fromFile(outputImage);
                    Intent intent = new Intent("android.intent.action.
                    intent.setType("image/*");
                    intent.putExtra("crop", true);
                    intent.putExtra("scale", true);
                    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
                    startActivityForResult(intent, CROP_PHOTO);
} });

相关文章

网友评论

      本文标题:android第一行代码笔记12-短信、摄像头和相册

      本文链接:https://www.haomeiwen.com/subject/lycfqktx.html